반응형
말 그대로 예외는 프로그래머가 기존의 정의된 예외 클래스 외에
필요에 따라 새로운 예외 클래스를 정의하여 사용할 수 있다.
🙄어떻게 내 마음대로 예외를 만들 수 있는 걸까?
→ 우리가 이때까지 배운 상속을 통해서 사용자 정의를 만들 수 있다.
Exception클래스 또는 RuntimeException클래스로부터 상속받아 클래스를 만들기도 하고,
필요에 따라 알맞은 예외 클래스를 선택하여 상속받아 만들 수 있다.
말로만 보면 알지 못하니 예를 들어보면!
class MyException extends Exception {
MyException(String msg) { // 문자열을 메개변수로 받는 생성자
super(msg); // 부모인 Exception 클래스의 생성자를 호출
}
}
Exception 클래스를 상속받아서 MyException 클래스를 만들었다.
여기서 필요하다면, 멤버 변수나 메서드를 추가할 수 있다.
기존의 예외 클래스는 주로 Exception을 상속받아서 'checked예외'로 작성하는 경우가 많았지만
요즘은 예외처리를 선택적으로 할 수 있도록 RuntimeException을 상속받아서 작성하는 쪽으로 바뀌어가고 있다.
왜 요즘은 RuntimeException을 상속받아서 unchecked예외가 더 많아지는 걸까?
→checked예외는 반드시 예외처리를 해주어야 하기 때문에 불필요한 경우에도 try-catch문을 넣어서 코드가 복잡해지기도 하고,
필수적으로 처리해야만 할 것 같았던 예외들이 선택적으로 처리해도 되는 상황으로 바뀌는 경우가 종종 발생하기 때문에
unchecked예외가 더 환영받고 있다.
*참고서적
Java의 정석
반응형
'프로그래밍 > JAVA' 카테고리의 다른 글
[JAVA] Objects 클래스 (0) | 2022.12.13 |
---|---|
[JAVA] 예외 던지기(exception re-throwing) / 연결된 예외(chained exception) (0) | 2022.11.22 |
[JAVA] 자동 자원 반환 try-with-resources (0) | 2022.11.22 |
[JAVA] finally 블럭 (0) | 2022.11.22 |
[JAVA] 메소드에 예외 선언하기 (throws) (0) | 2022.11.21 |