[Java] 예외 처리를 위한 사용자 지정 예외

Java 표준 라이브러리에서 정의하는 일반적인 예외는 다음과 같습니다.

Exception
├─ RuntimeException
│  │
│  ├─ NullPointerException
│  │
│  ├─ IndexOutOfBoundsException
│  │
│  ├─ SecurityException
│  │
│  └─ IllegalArgumentException
│     │
│     └─ NumberFormatException
├─ IOException
│  │
│  ├─ UnsupportedCharsetException
│  │
│  ├─ FileNotFoundException
│  │
│  └─ SocketException
├─ ParseException
├─ GeneralSecurityException
├─ SQLException
└─ TimeoutException

코드에서 예외를 발생시켜야 하는 경우 JDK에서 정의한 예외 유형을 사용해 보십시오. 예를 들어 매개변수 검사는 유효하지 않으며 다음을 발생시켜야 합니다 IllegalArgumentException.

static void process1(int age) {
    
    
    if (age <= 0) {
    
    
        throw new IllegalArgumentException();
    }
}

대규모 프로젝트에서는 새로운 예외 유형을 사용자 정의할 수 있지만 합리적인 예외 상속 시스템을 유지하는 것이 매우 중요합니다.

일반적인 방법은 하나를 BaseException"루트 예외"로 사용자 정의한 다음 다양한 비즈니스 유형의 예외를 파생시키는 것입니다.

BaseException적합한 것에서 Exception파생하는 것이 필요하며 일반적으로 RuntimeException다음에서 파생하는 것이 좋습니다.

public class BaseException extends RuntimeException {
    
    
}

다른 비즈니스 유형의 예외는 BaseException다음에서 파생될 수 있습니다.

public class UserNotFoundException extends BaseException {
    
    
}

public class LoginFailedException extends BaseException {
    
    
}

...

사용자 지정 항목은 BaseException여러 구성 방법을 제공해야 합니다.

public class BaseException extends RuntimeException {
    
    
    public BaseException() {
    
    
        super();
    }

    public BaseException(String message, Throwable cause) {
    
    
        super(message, cause);
    }

    public BaseException(String message) {
    
    
        super(message);
    }

    public BaseException(Throwable cause) {
    
    
        super(cause);
    }
}

위의 시공방법을 그대로 복사한 것입니다 RuntimeException. 이러한 방식으로 예외가 발생하면 적절한 구성 방법을 선택할 수 있습니다. IDE는 상위 클래스에 따라 하위 클래스의 구성 방법을 빠르게 생성할 수 있습니다.

요약

예외를 발생시킬 때 JDK에서 정의한 예외 유형을 재사용하십시오.

예외 시스템을 사용자 정의할 때 RuntimeException에서 "루트 예외"를 파생시킨 다음 비즈니스 예외를 파생시키는 것이 좋습니다.

예외를 사용자 정의할 때 여러 구성 방법을 제공해야 합니다.

추천

출처blog.csdn.net/ihero/article/details/132189512