관리 메뉴

드럼치는 프로그래머

[JAVA] try catch finally 사용 시 문제점 본문

★─Programing/☆─JAVA

[JAVA] try catch finally 사용 시 문제점

드럼치는한동이 2013. 5. 9. 14:45

try{

// .. 예외가 발생할 가능성이 있는 구문!

}catch(Exception e){

// .. 예외 발생시 처리 구문!

}finally{

// .. 꼭 실행해야하는 구문!

}


전 코딩을 할 때 위와 같이 이해 하고 코딩을 하고 있습니다.

하지만 여기서 몇가지 생각해야 할 게 있더라구요!

1. try 안에 return.

2. catch 안에 return.

3. finally 안에 return.


한번 생각해보세요.......


 

결론.

1. try 안에 return문

=> return은 정상 동작으로 종료가 되었다는 의미이므로 finally 구문을 거쳐 정상 종료

2. catch 안에 return 문

=> catch 안에 return문은.. 거의 쓸일이 없을듯... 똑같이 finally 구문을 거쳐 정상 종료.

3. finally 안에 return문

=> 문제!!!

finally 안에 return을 할 경우, return이 정상 종료를 의미 하므로 try 구문에서 발생한

Exception이 출력이 되지 않습니다. 따라서, Exception이 발생했지만 발생 하지 않은

것으로 간주 되는 것이지요.


cf> finally 안에 또 다른 try catch문

=> 이 부분도 생각 많이 해야합니다. finally 구문에서 생기는 Exception이 그 전에 생긴

Exception을 잡아 먹어버림... ㅎㅎ 그래서 try 안에서 발생한 부분을 파악 할 수 없을

가능성이 있습니다. 그래서, 코딩할 때 잘 고려해야겠죠^^

 

[출처] http://gogorchg.tistory.com/m/post/view/id/230

Comments