throws로 위임
try-catch(- finally)로 처리
- try 블럭
예외(Exception)가 발생할 가능성이 있는 코드를 포함하여 작성하는 블럭
catch블럭
try 블럭에서 예외 발생 시 해당 예외 타입(Exception 클래스 타입)에 대한 처리를 기술하는 블럭이다.
여러 개의 catch블럭을 이어서 사용할 수 있으며 상위 타입의 예외를 처리하는 catch 블럭이 아래 쪽에 위치해야 한다.
finally 블럭
예외 발생 여부와 상관 없이 꼭 실행되어 처리해야 할 코드가 있으면 작성하는 블럭이다. 주로 java.io나 java.sql 패키지의 메소드 처리 시 자원 반납을 위해 사용한다.
// try 블록이 종료되면 자원은 자동으로 닫힘
try (BufferedReader br = new BufferedReader(new FileReader("example.txt"))) {
String line;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
}
class MyCustomException extends Exception {
public MyCustomException(String message) {
super(message);
}
}
public class CustomExceptionExample {
public static void main(String[] args) {
try {
throw new MyCustomException("This is a custom exception");
} catch (MyCustomException e) {
e.printStackTrace();
}
}
}