티스토리 뷰

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://skywatch.egloos.com/859503

http://lazydeveloper.net/1560573

그럼 오늘도 즐코딩!!

신고
댓글
댓글쓰기 폼
공지사항
Total
186,283
Today
100
Yesterday
736
«   2017/12   »
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31            
글 보관함