예외 상황에 프로그램이 종료되지 않도록 에러를 '받아줄' 코드를 작성할 수 있다.
System.out.print("나이를 입력하세요: ");
String input = scanner.nextLine();
try {
int age = Integer.parseInt(input);
System.out.println("내년이면 " + (age + 1) + "살입니다.");
} catch (NumberFormatException e) {
System.out.println("숫자만 입력할 수 있습니다. 입력한 값: " + input);
}
System.out.println("프로그램을 종료합니다.");
try 구문이 없다면 Integer.parseInt(input)에서 정수가 아닌 값을 입력할 경우 런타임 에러가 발생하며 프로그램이 종료되지만, try로 감쌌으므로 catch 안의 로직이 실행되며 정상 동작한다.
finally를 사용하여 예외 발생 여부와 무관하게 반드시 실행할 로직을 추가할 수 있다. 주로 자원 해제 등에 쓰인다.
throw를 사용하여 직접 에러를 '던질' 수 있다. 이렇게 발생시킨 에러 역시 try-catch로 받을 수 있다.