개발을 하면서 특히 중요한 것은 예외에 대한 처리 방식이다.
기존에 자바에서 제공하는 예외처리와 스프링에서 제공하는 예외처리들도 있지만, 그 외적으로 스스로 예외처리를 커스텀 해주는 방식이 있다.
컴파일 예외처리일 경우
Exception
상속
런타임 예외처리일 경우RuntimeException
상속
말 그대로 컴파일 단계에서 예외처리를 하는 경우와 런타임에서의 예외처리를 하는 두 가지가 있다.
예외처리를 할 때, 클래스 명의 끝에 Exception으로 끝나는 것이 좋다 (예외에 대한 클래스라고 명시적으로 알려주기 때문이다)
일단, 예외처리를 커스텀할 때 생성자는 두 개를 선언하는 것이 일반적이다.
// 런타임 중에 예외처리 커스텀
public class TestException extends RuntimeException {
// 매개변수가 없는 기본 생성자
TestException() {
}
// 예외 발생 원인을 전달하기 위해 String 타입의 매개변수를 갖는 생성자
TestException(String message) {
super(message); // RuntimeException 클래스의 생성자를 호출
}
}
try 문을 통해 예외처리에 대한 내용을 잡으면 catch 블록에서 예외 객체의 정보를 얻게 된다.
모든 예외 객체는 Exception
클래스를 상속하기 때문에 Exception이 가지고 있는 메서드를 모든 예외 객체에서 사용할 수 있다.
가장 많이 쓰는 메서드
String 타입의 매개변수 메세지를 갖는 생성자가 이용한다면, 메세지는 자동적으로 예외 객체 내부에 저장하게 되는데, 이 메세지를 리턴하는 함수이다.
예외 발생 코드를 추척해서 모두 콘솔에 출력한다.