티스토리 뷰

Try - catch문의 흐름

아래와 같은 코드가 있다고 해 보자.

구조를 살펴보면, 

- try 블록에는 예외 발생 코드가 위치한다.

- try블록의 코드가 예외 발생 없이 실행되면 catch 블록의 코드는 실행되지 않는다.

- try블록의 코드에서 예외가 발생하면 catch블록으로 이동하여 예외 처리 코드를 실행한다.

 

위의 경우에는 아래처럼 될 것이다.

(catch에서 return이 빠져있음 ㅠ)

output

 

코드를 조금 변경해서 이렇게 바뀐다면?

이번에는 data들에 값을 지정해 줬는데, data1에는 숫자 String, data2에는 그냥 string을 줬다.

 

이렇게 되면 아래와 같은 흐름으로 진행될 것이다.

data1은 parseInt로 int로 변환이 가능하지만, data2는 변환이 불가능하다.

그렇기때문에  NumberFormatException을 발생시킬 것이다.

 

output

 

Finally

위 코드들을 보면 마지막에 Finally라고 작성된 것이 있다.

finally는 예외 발생 여부와는 상관없이 항상 실행할 내용이 있을 경우에 사용한다.

finally 블록은 생략 가능하며 try catch 블록에서 return문을 사용하더라도 finally 블록은 항상 실행된다.

 

 

참고자료

혼자 공부하는 자바 (신용권 저)

댓글