안녕하세요. pitang입니다.
예외처리 마무리 개념 정리해보도록 하겠습니다.
예외 발생시키기
throw new XXXException();
throw new XXXException("메시지"); 를 통해 예외를 발생시킬 수 있다.
예외 객체를 생성할 때는 기본 생성자 또는 예외 메시지를 갖는 생성자 중 어떤 것을 사용해도 된다.
일반 예외로 선언할 경우 Exception을 상속하면 되고, 이 경우에는 try/catch를 꼭 사용해야 한다.
실행 예외로 선언할 경우 RuntimeException을 상속하면 된다. 이 경우에는 try/ catch를 사용해도 되고 안 해도 된다.
ex)
예외 떠넘기기 (throws)
메서드 내부에서 예외가 발생할 수 있는 코드를 작성할 때 try - catch 블록으로 예외를 처리하는 것이 기본이지만,
경우에 따라서 메서드를 호출한 곳으로 예외를 떠넘길 수도 있다. 이때 throws 키워드를 사용한다.
사용방법은
리턴 타입 메서드명(매개변수,...) throws 예외 클래스 1, 예외 클래스 2,... {}
이다.
종류별로 나열하는 것이 일반적이지만, Exception만으로 모든 예외를 간단히 떠넘길 수도 있다.
ex1)
throws로 받았으면 try - cathch 블록으로 예외 처리를 해줘야 바람직하다.
try - catch 블록으로 예외 처리를 하지 않은 경우는 ex2에서 볼 수 있다.
-> 파일 못 찾음. 이 출력된다.
ex2)
-> main() 메서드에서도 throws 키워드를 사용해서 예외를 떠넘겨 JVM이 최종적으로 예외 처리를 하도록 만들었다.
ex3)
상위 클래스의 Exception으로 예외를 처리할 수도 있다.
-> 익셉션 발생이 출력된다.
ex4)
종류별로 나열할 수 있다.
사용자 정의 예외와 예외 발생
자바 표준 API에서 제공하는 예외 클래스만으로는 다양한 종류의 예외를 표현할 수가 없을 때,
개발자가 직접 정의해서 만들어야 하므로 사용자 정의 예외라고 한다.
사용자 정의 예외 클래스는 일반 예외로 선언할 경우 Exception을 상속, 실행 예외로 선언할 경우 RuntimeException을 상속하면 된다.
이름은 Exception으로 끝나는 것이 좋고 생성자는 두 개를 선언하는 것이 일반적이다.
매개변수가 없는 기본 생성자와 예외 발생 원인(예외 메시지)을 전달하기 위한 String타입의 매개 변수를 갖는 생성자이다.
예외 메시지의 용도는 catch {} 블록의 예외 처리 코드에서 이용하기 위해서이다.
ex1)
찾는 이미지가 없으면 예외가 발생하는 ImageNotFoundException이다.
컴파일러가 체크하지 않는 실행 예외, RuntimeException을 상속한다.
감사합니다.
*m1 맥북을 사용 중입니다.*
'6개월 대장정 > JAVA 개념' 카테고리의 다른 글
21일차 - 기본 API 클래스(2, 정규표현식) (0) | 2021.09.12 |
---|---|
20일차 - 기본 API 클래스(1, String클래스) (0) | 2021.09.09 |
18일차 - 예외 처리(1) (0) | 2021.09.07 |
18일차 - 인터페이스(2) (0) | 2021.09.07 |
17일차 - 인터페이스(1) (0) | 2021.09.06 |