[Java] 예외처리 커스텀

이병수·2024년 2월 9일
0

Java

목록 보기
27/27
post-thumbnail

예외처리 커스텀하기


개발을 하면서 특히 중요한 것은 예외에 대한 처리 방식이다.

기존에 자바에서 제공하는 예외처리와 스프링에서 제공하는 예외처리들도 있지만, 그 외적으로 스스로 예외처리를 커스텀 해주는 방식이 있다.



커스텀 예외처리 (Custom Exception)


컴파일 예외처리일 경우 Exception 상속
런타임 예외처리일 경우 RuntimeException 상속

말 그대로 컴파일 단계에서 예외처리를 하는 경우와 런타임에서의 예외처리를 하는 두 가지가 있다.
예외처리를 할 때, 클래스 명의 끝에 Exception으로 끝나는 것이 좋다 (예외에 대한 클래스라고 명시적으로 알려주기 때문이다)

일단, 예외처리를 커스텀할 때 생성자는 두 개를 선언하는 것이 일반적이다.

  1. 매개변수가 없는 기본 생성자
  2. 예외 발생 원인(예외 메세지)를 전달하기 위해 String 타입의 매개변수를 갖는 생성자

// 런타임 중에 예외처리 커스텀
public class TestException extends RuntimeException {
	
    // 매개변수가 없는 기본 생성자
    TestException() {
    
    }
    
    // 예외 발생 원인을 전달하기 위해 String 타입의 매개변수를 갖는 생성자
    TestException(String message) {
    	super(message); // RuntimeException 클래스의 생성자를 호출
    }
}

예외처리 정보 얻기


try 문을 통해 예외처리에 대한 내용을 잡으면 catch 블록에서 예외 객체의 정보를 얻게 된다.
모든 예외 객체는 Exception 클래스를 상속하기 때문에 Exception이 가지고 있는 메서드를 모든 예외 객체에서 사용할 수 있다.

가장 많이 쓰는 메서드

  1. getMessage()
  2. printStackTrace()

getMessage() 메서드

  • String 타입의 매개변수 메세지를 갖는 생성자가 이용한다면, 메세지는 자동적으로 예외 객체 내부에 저장하게 되는데, 이 메세지를 리턴하는 함수이다.

    • 즉, 어떤 메세지를 남겼는지 확인할 수 있다.

printStackTrace() 메서드

  • 예외 발생 코드를 추척해서 모두 콘솔에 출력한다.

    • 어떤 예외가 어디서 발생했는지 상세하게 알려주기 때문에 사용한다.
profile
백엔드 개발자가 되고 싶어요

0개의 댓글