如何在自定义Exception构造函数参数中使用多个错误特定的参数?

时间:2019-02-16 18:31:00

标签: java spring-boot exception exception-handling runtimeexception

我正在构建类似这样的自定义异常。

public class ValidationException extends RuntimeException {

    public validationException(String errorId, String errorMsg) {
        super(errorId, errorMsg);
    }
}

这当然会引发错误,因为 RuntimeException 没有任何此类构造函数来处理此问题。

我还想通过

在我的 GlobalExceptionalHandler 中获取errorId和errorMsg。
  

ex.getMessage();

但是我希望函数分别获取errorId和errorMessage。如何实现?

1 个答案:

答案 0 :(得分:0)

您希望将errorIderrorMsg用作ValidationException类的字段,就像处理普通的类一样。

public class ValidationException extends RuntimeException {

    private String errorId;
    private String errorMsg;

    public validationException(String errorId, String errorMsg) {
        this.errorId = errorId;
        this.errorMsg = errorMsg;
    }

    public String getErrorId() {
        return this.errorId;
    }

    public String getErrorMsg() {
        return this.errorMsg;
    }
}

并在您的GlobalExceptionHandler中:

    @ExceptionHandler(ValidationException.class)
    public ResponseEntity<SomeObject> handleValidationException(ValidationException ex) {
        // here you can do whatever you like 
        ex.getErrorId(); 
        ex.getErrorMsg();
    }