티스토리 뷰
반응형
try 구문
Exception을 처리하는 첫 번째 단계이다. 예외가 발생할 코드들을 try 구문에 포함시킨다.
catch 구문
try 구문과 함께 사용되며 1개 이상의 catch 블록을 가질 수 있다. 각각의 catch 블록은 명시된 exception이 발생하였을 경우 실행된다.
try {
} catch (IndexOutOfBoundsException e) {
} catch (IOException e) {
}
1개의 catch 문은 1개 이상의 exception을 한 코드에서 처리할 수도 있다.
try {
} catch (IOException|SQLException ex) {
logger.log(ex);
throw ex;
}
finally 구문
finally 구문은 try 구문 처리 후 항상 실행된다. 그렇기에 finally 구문 안에 있는 코드들은 exception이 발생하더라도 항상 실행될 수 있도록 보장된다. exception이 발생하던 발생하지 않던 finally 구문을 사용하여 이전에 사용된 자원들이 무조건 회수될 수 있도록 하거나, 다른 처리 코드를 작성하는 습관을 들이는 것이 좋다.
public void writeList() {
PrintWriter out = null;
try {
out = new PrintWriter(new FileWriter("OutFile.txt"));
} catch (IndexOutOfBoundsException e) {
} catch (IOException e) {
} finally {
if (out != null) { // 자원이 할당되어있을 경우 회수한다.
out.close();
}
}
}
My Example
public void inviteUser(User user, User invitee) {
boolean isAllowed = true;
try {
checkPermission(user);
} catch(UserDoNotHavePermission e) {
log.error("User do not have permission.");
isAllowed = false;
} finally {
if(isAllowed)
processInviteUser(user, invitee);
saveActivityLog(user, invitee, isAllowed);
}
}
[ 참고 ] docs.orable.com/exception/finally
반응형
'괴발개발' 카테고리의 다른 글
[JAVA] MongoDB distinct 사용하기 (0) | 2021.01.10 |
---|---|
[JAVA] Eclipse에서 MongoDB 연동하기 (0) | 2021.01.09 |
크롬 북마크 내보내기 / 가져오기 (0) | 2021.01.03 |
Sourcetree를 활용한 git merge commit conflict 충돌 해결 (0) | 2021.01.03 |
[MAC] git Permission denied (publickey). 해결 방법 (2) | 2021.01.03 |
반응형