본문 바로가기

나의 플랫폼/안드로이드

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

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

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