예외 처리
예외 처리 문법
- 예외 처리 문법은 크게 3가지 요소(
try,catch,finally)로 구성돼 있다.
try - 예외발생을 유발할 수 있는 코드를 블록으로 처리
catch - 예외발생시, 예외 처리 코드를 블록으로 처리
finally - 예외가 발생하던, 안하던 무조건 처리되는 코드를 블록으로 처리
try{
}catch(예외 클래스명 참조 변수명){
}finally{
}
다중 예외 처리(순차적 처리 구문)
- 다중 예외 처리 코드를 사용시, 예외를 여러개 한번에 처리할 수 있다.
- 위에서부터 순차적으로 처리되기 때문에 하위 코드가 실행될 수 있게 순서를 지정해야 한다.
try{
}catch(예외 클래스명 참조 변수명){
}catch(예외 클래스명 참조 변수명){
}finally{
}
다중 예외 처리(동일 처리 구문)
- 다중 예외 처리 과정에서 각각 예외가 발생하였을 때 처리하는 내용이 동일하면
| 기호를 이용해 처리할 수 있다.
try{
}catch(예외 클래스명 참조 변수명 | 예외 클래스명 참조 변수명){
finally{
}
리소스 자동 헤제 예외 처리
finally{} 블록은 항상 실행해야 하는 기능이 있을 때 사용하는 블록이다.
- 항상 실행해야 하는 기능 중 하나가 리소스 헤제 이다.
try()구문 ()에 자동으로 리소스를 반납해야 할 객체를 생성하면 예외처리 구문이 실행되고 '무조건' 실행된다.
try()에 들어갈 객체는 close() 메서드가 존재해야 하는데, 이는 해당 객체가 AutoCloseable 인터페이스를 상속받은 객체이어야 지만, try()구문에 들어갈 수 있다.
try(리소스 자동 헤제가 필요한 객체 생성){
}catch(예외 클래스명 참조 변수명 ){
finally{
}