Java2014. 1. 8. 14:06

프로그래밍을 하던 도중 Java의 Try Catch Finally에 대해서 궁금증이 하나 생겼다.

Try에서는 오류가 있거나 없거나 그안에 있는 구문을 처리하고, Catch에서는 Try에서 일어나는 오류에 대해서 처리를 한다.

그럼 Finally는 Try가 실행되고 오류가 없을경우 실행이 되는지 아님 Try와 Catch가 모두 실행 되고 오류에 상관없이 실행이 되는지에 대해서 궁금했다.


http://msdn.microsoft.com/ko-kr/library/vstudio/k4hea629(v=vs.100).aspx


결과는 후자였다.

오류가 나든말든 Try Catch를 모두다 실행하고 Finally를 실행한다.


그리고 내용을 읽다보면 중요한 정보가 하나 있다.

오류가 발생했을때 오류에 대한 내용을 반환하기 위해서 Catch안에 return문을 이용해 어떠한 결과값을 반환하는 코드가 있다면 Finally는 실행이 될까?

위 링크의 내용에 있지만 Try나 Catch에서 return을 만나게 된다면 그 return문이 실행 되기전에 Finally가 실행된다. 그래서 Finally문에는 가급적이면 return문을 사용하지 말것을 이야기하고 있다.


너무 기본적인걸 모르고 있었던건가..

Posted by Z700zZz