JAVA__33

AMJ·2023년 3월 7일
0

언어_log

목록 보기
33/57

예상되는 예외처리 > 자진고발?

class Main {
    public static void main(String[] args) {
        int[] datas = new int[2];

        try {
            work(datas);
        }
        catch ( ArrayIndexOutOfBoundsException e ) { // main 함수 입장에서 이 코드는 가독성이 떨어진다.
            System.out.println("이런.. 오류가 발생했군요.");

        }
    }

    static void work(int[] datas) {
        datas[0] = 10;
        datas[1] = 20;
        datas[2] = 30; // 여기서 자동으로 throw new ArrayIndexOutOfBoundsException(); 이 발생한다.
    }
}

기존 Exception클래스 상속받아 새로운 class exception 만들어 처리

throw new 배열의_사이즈_오류_Exception으로 자진 신고

    static void work(int[] datas) {
        if ( datas.length < 3 ) {
            throw new 배열의_사이즈_오류_Exception(); // 함수가 여기서 멈춤
        }
        
        datas[0] = 10;
        datas[1] = 20;
        datas[2] = 30;
    }
class 배열의_사이즈_오류_Exception extends RuntimeException { }

runtime 런타임

  • 프로그램이 실행되는 동작.
  • 프로그램이 실행되고 있는 때 존재하는 곳.
  • 프로그래밍 언어가 구동 되는 환경.

profile
재미있는 것들

0개의 댓글