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
그럼 오늘도 즐코딩!!
'나의 플랫폼 > 안드로이드' 카테고리의 다른 글
[Android] 외장 하드 접근의 큰 착각. (11) | 2013.07.03 |
---|---|
[Android] 실시간 GPS 사용 (2) | 2013.06.14 |
[ Android ] htons (0) | 2013.01.28 |
[ Android ] AIDL 파일 예제 (0) | 2013.01.28 |
[ Android ] CalledFromWrongThreadException (0) | 2013.01.24 |