try-catch 블록
기본 형태
try {
예외가 발생할 수 있는 코드
}catch('발생할 예외의 타입', '예외를 저장할 변수'){
해당 예외 발생 시 실행할 코드
}catch('발생할 예외의 타입', '예외를 저장할 변수'){
해당 예외 발생 시 실행할 코드
}
catch 블록: 특정 예외 타입이 발생했을 때 실행될 코드를 정의
>>다중 catch 블록으로 사용 가능(여러 예외 처리 가능)
예시)
public static void main(String[] args) {
// char c1 = 'abc'; 컴파일 예외
String s1 = "abc";
// System.out.println(a1); 컴파일 예외
// int division = 10 / 0; 런타임 예외
//Exception in thread "main" java.lang.ArithmeticException: / by zero
try {
// 예외 발생 가능성 코드 작성
int division = 10 / 0;
} catch (ArithmeticException e) {// 예외 변수명 e, exception 등이 주로 사용
// try 블록 내에서 발생하는 예외를 매개변수로 자동 전달 받음
// Throwable 내의 다양한 기능 활용
System.out.println(e.getMessage());// / by zero
System.out.println("0으로 정수를 나눌 수 없습니다");
}
System.out.println("정상적인 실행");
System.out.println("다중 catch 블록 실행");
try {
System.out.println("정상 실행 1");
// int devision = 10 / 0;
System.out.println("48번째 줄 주석시 실행");
int[] numbers = new int[5];// new int [배열의 크기]
// numbers[10] = 50;// 변수명[인덱스번호]
String text = null;
System.out.println(text.length());// 문자열.length(): 문자열 길이 반환
} catch(ArithmeticException e) {
System.out.println("수학 공식 에러: " + e.getMessage());
} catch(ArrayIndexOutOfBoundsException e) {
System.out.println("배열 인덱스 초과 에러: " + e.getMessage());
} catch(NullPointerException e) {
System.out.println("Null값 계산 에러: " + e.getMessage());
} catch(Exception e) {
System.out.println("초과 오류 발생: " + e.getMessage());
// Exception 클래스
// 자바 전체 예외의 최상위 클래스
// 예기치 못한 예외 발생 방지를 위해 세부적인 예외 작성의 마지막에 첨부
} finally {
// 예외 발생 여부와 상관없이 항상 실행되는 코드 블럭
System.out.println("finally 블록 - 항상 실행");
}
}
}
'java' 카테고리의 다른 글
32. API (0) | 2025.03.05 |
---|---|
31. 자바의 예외 처리 방법-3(사용자 정의 예외) (1) | 2025.03.05 |
28. 예외(Exception) (0) | 2025.03.05 |
실습) 추상 클래스 활용2 (0) | 2025.02.27 |
실습) 추상 클래스 활용 1 (0) | 2025.02.27 |