본문 바로가기
old/Java

사용자 정의 예외와 예외 발생시키기, 예외 정보 얻기

by 물 개 2020. 11. 15.

프로그램을 개발하다보면 자바 표준 API에서 제공하는 예외 클래스만으로는 다양한 종류의 예외를 표현할 수가 없다.

애플리케이션 서비스와 관련된 예외를 애플리케이션 예외(Application Exception)라고 한다.

애플리케이션 예외는 개발자가 직접 정의해서 만들어야 하므로 사용자 정의 예외라고도 한다.

 

사용자 정의 예외 클래스 선언

일반 예외로 선언할 경우 Exception을 상속하고,

실행 예외로 선언할 경우 RuntimeException을 상속한다.

public class XXXException extends [Exception | RuntimeException] {
	//매개변수가 없는 기본 생성자
	public XXXException() { }
    
    //예외 발생 원인(예외 메세지)를 전달하기 위해 String 타입의 매개 변수를 갖는 생성자
    public XXXException(String message) {
    	super(message);
    }
}

- 사용자 정의 예외 클래스의 이름은 Exception 으로 끝나는 것이 좋다.

- 필드, 생성자, 메소드 선언들을 포함할 수 있지만 대부분 생성자 선언만을 포함한다.

- 생성자는 매개변수 없는 기본 생성자와 String 타입의 매개변수를 갖는 생성자 2개를 만드는 것이 일반적이다.

 

 

예외 발생시키기

사용자 정의 예외 또는 자바 표준 예외를 발생시키려면 throw 키워드를 사용한다.

throw new XXXException();
throw new XXXException("메세지");

catch 블록에서 예외 메시지가 필요하다면 예외 메세지를 갖는 생성자를 이용해야 한다.

 

 

예외 정보 얻기

왜 예외가 발생했는지 등등 예외 정보가 포함된 예외 메세지를 catch 블록에서 getMessage() 메소드의 리턴값으로 얻을 수 있다.

try {

} catch (Exception e) {
    String message = e.getMessage();
}

printStackTrace() 메소드는 예외 발생 코드를 추적해서 모두 콘솔에 출력한다. 어떤 예외가 어디에서 발생했는지 상세하게 출력해주기 때문에 프로그램을 테스트하면서 디버깅할 때 사용한다.

try {

} catch (Exception e) {
    //예외의 발생 경로를 추적한다.
    e.printStackTrace();
}

'old > Java' 카테고리의 다른 글

java.lang.Object  (0) 2020.11.16
java API 도큐먼트  (0) 2020.11.16
Java 예외(exeception) 종류 (일부)  (0) 2020.11.15
예외 처리  (0) 2020.11.15
익명 객체 (anonymous)  (0) 2020.11.15

최근댓글

최근글

skin by © 2024 ttuttak