1. 개별 예외 처리 방법
Exception 클래스는 모든 예외들의 조상 클래스 이다. 그래서 모든 예외를 다형성의 원리에 의해 다 받을 수 있었던 것이다.
catch의 () 안에 예외별로 객체를 만들어주면, 해당 예외가 발생 했을 시에만 발동하는 예외 처리 구문을 만들 수 있다.
// 배열 인덱스를 벗어난 곳에 대한 소스 실행을 할 경우의 예외처리문,
// 잘못된 형변환이 일어났을 경우의 예외처리문을 따로 두었다.
// 맨 마지막은 나머지 예외들에 대한 일괄 처리이다.
catch (ArrayIndexOutOfBoundsException e){
System.out.println("인덱스를 잘못 설정했어요.");
} catch (ClassCastException e) {
System.out.println("잘못된 형 변환 입니다.");
} catch (Exception e) {
System.out.println("그 외의 모든 에러는 여기서 처리가 돼요.");
e.printStackTrace();
}
2. 예외 2개 이상 묶어서 예외 처리 방법
// 숫자 계산 오류 혹은 배열 인덱스 밖의 값에 대한 코드 실행 오류의 예외 처리를 한 번에 했다.
// 두 오류 중 하나가 나타나면 "뭔가 실수를 하셨네요"라는 문장이 뜬다.
catch (ArithmeticException | ArrayIndexOutOfBoundsException e){
System.out.println("뭔가 실수를 하셨네요.");
}
3. 스스로 해보기
public class Catch_myself {
public static void main(String[] args) {
try {
// int[] arr = new int[3];
// arr[5] = 2400;
String s = null;
System.out.println(s.toLowerCase());
} catch(ArrayIndexOutOfBoundsException e){
System.out.println("인덱스 밖의 더미 값에서 뭔가 실행하려고 함.");
} catch (NullPointerException e) {
System.out.println("null 값에 대한 실행");
} catch (Exception e){
System.out.println("논리적으로 잘못된 문장 실행 / 오류 종류: " + e.getMessage());
e.printStackTrace();
}
}
}
'Language > Java' 카테고리의 다른 글
Finally 구문 (0) | 2023.02.28 |
---|---|
Throw (0) | 2023.02.24 |
Run-Time(런타임) 오류와 예외 처리 (0) | 2023.02.23 |
[JAVA] Stream 실습 (0) | 2023.02.19 |
[JAVA] Stream (0) | 2023.02.18 |