티스토리 뷰
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 블록은 항상 실행된다.
참고자료
혼자 공부하는 자바 (신용권 저)
'language > java' 카테고리의 다른 글
예외 처리 - 예외 계층 구조 (0) | 2023.02.03 |
---|---|
예외 처리 - throw / throws (0) | 2023.02.03 |
예외 처리 - 에러와 예외 / 예외와 예외 클래스 (0) | 2023.02.01 |
java.lang.IllegalStateException: getWriter() has already been called for this response (0) | 2023.01.31 |
Error: Gradle script '~~~' is not executable (0) | 2023.01.31 |
댓글
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- EC2
- jmeter부하테스트
- 동적크롤링
- jmeter테스트
- bankersRounding
- CorrectnessAndTheLoopInvariant
- 대규모더미데이터
- jwt
- hackerrank
- Redisson
- jmeter시나리오
- 스프링faker
- 항해
- Java
- 자바
- jmeter로그인
- CheckedException
- 인덱스
- 프로그래머스
- Redis
- jmeter쿠키
- Python
- 부하테스트시나리오
- index
- jmeter토큰
- 토큰
- pessimisticlock
- Lock
- Spring
- jmeter세션
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함