본문 바로가기

Language/Java

오류에 따른 맞춤 예외 처리

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