사용자 정의 예외 & 예외 되던지기

0

사용자 정의 예외 만들기

  • 우리가 직접 예외 클래스를 정의할 수 있다.
  • 조상은 Exception(사용자가 발생)과 RuntimeException(프로그래머의 실수로 발생)중에서 선택
    ↳ checked는 try-catch가 필수적이기 때문에, 웬만하면 런타임(unchecked)으로 예외처리 해주면 편함.
class MyException extends Exception {
	MyException(String msg) {  // 문자열(String)을 매개변수로 받는 생성자
    	super(msg);  // 조상인 Exception클래스의 생성자를 호출한다.
    }
}

1) Exception과 RuntimeException 중에서 조상 선택
2) String 매개변수가 있는 생성자를 넣어주기

예외 되던지기(exception re-throwing)

  • 예외를 처리한 후에 다시 예외를 발생시키는 것
  • 호출한 메소드와 호출된 메소드 양쪽 모두에서 예외처리 하는 것 (2번 처리)
class Ex8_12 {
	public static void main(String[] args) {
    	try {
        	method1();
        } catch (Exception e) {
        	System.out.println("main 메소드에서 예외가 처리되었습니다.");  // 처리2
        }
    }   // main 메소드의 끝
    static void method1() throws Exception {   // 예외 선언
    	try {
        	throw new Exception();   // 예외 발생1
        } catch (Exception e) {
        	System.out.println("method1 메소드에서 예외가 처리되었습니다.");  // 처리1
            throw e;   // 다시 예외 발생시킴, 처리한 예외를 시킨 메소드(main)로 다시 던짐
        }
    }     // method1 메소드의 끝
}

↳ 두 개의 catch 블럭이 전부 실행됨

출처

  • 자바의 정석 기초편 youtube : ch8- 15~ 17
profile
백엔드를 공부하고 있습니다.

0개의 댓글