프로그램 실행 중에 예외가 발생했을 때 예외를 처리해주어야 한다.
예외를 처리해주지 않으면 개발자의 의도와 다르게 프로그램이 강제 종료될 수 있다.
try-catch 문은 개발자가 예외를 직접 처리하기 위한 문법이다.
try {
// 예외가 발생할 가능이 있는 실행문(try 블럭)
} catch(처리할 예외 타입 선언) {
// 예외 처리문(catch 블럭)
} finally { // 생략 가능
// 예외 여부와는 관계 없이 무조건 실행되는 문장(finally 블럭)
}
try 블럭 안에 작성try 블럭에서 예상한 예외가 발생했을 때 실행시킬 문장을 catch 블럭에 작성catch 블럭은 실행되지 않고 넘어감finally 블럭에 작성public class Main {
public static void main(String[] args) {
int a, b, c;
try {
a = 10;
b = 0;
c = a / b; // 10 / 0 -> 산술오류 ArithmeticException 발생
} catch (ArithmeticException e) {
System.out.println("정수를 0으로 나누어서 예외가 발생");
} finally {
System.out.println("try - catch 문 종료");
}
}
정수의 나눗셈에서 제수가 0일 때 ArithmeticException 오류가 발생하기 때문에 예외처리를 해주어야 한다.
public class Main {
public static void main(String[] args) {
int[] arr = new int[5];
try {
arr[3] = 7;
arr[6] = 11; // 배열의 범위를 넘어선 인덱스를 참조
} catch (ArrayIndexOutOfBoundsException e) {
System.out.println("배열의 범위를 벗어났습니다.");
} finally {
System.out.println("try - catch 문 종료");
}
}
선언된 배열의 범위를 벗어나는 예외를 처리해주어야 한다.