첫 번째 예는 throw new MyCustomException()
을 사용하려는 경우에만 작동하지만 예외가 발생한 경우 ... 자세한 정보를 제공 할 수 있습니다. 디버깅을 쉽게 할 수 있습니다.
다른 사용자가 예외 클래스를 사용하는 경우 더 명시적인 메시지를 사용하거나 재실행하는 경우 원인을 전달할 수 있습니다. 또는 누군가 다른 사람이 코드를 디버그해야하는 경우 메시지 나 원인없이 예외가 발생하지 않으면 교착 상태가되지 않을 가능성이 훨씬 큽니다. 예를 들어 내가 내 마지막 프로젝트에 사용되는 사용자 정의 예외
, 전부
public final class CryptorException extends Exception {
private static final long serialVersionUID = 1L;
public CryptorException(String message) {
super(message);
}
public CryptorException(Throwable cause) {
super(cause);
}
public CryptorException(String message, Throwable cause) {
super(message, cause);
}
}
. 몇 초가 걸리고 거의 노력하지 않습니다. 매개 변수없이 생성자를 구현하지 않은 방법에 유의하십시오. 원하는 경우 추가해야합니다.
기술적으로 생성자는 이 아닌을 무시합니다. 왜냐하면 생성자는 처음부터 상속되지 않았기 때문입니다.
serialVersionUID에 대한 설명은 this question을 참조하십시오. 당신이 어떤 것을 serialize하지 않는다면, 그것에 대해 신경 쓸 필요가 없습니다.
문자열 생성자, 예외 생성자 및 둘의 조합. 오류를 설정하고, 예외의 통과 추적을 설정하고, 조합을 허용합니다. 그냥 내 의견. – Compass