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

问题描述 投票:0回答:1

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

public class ValidationException extends RuntimeException {

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

这当然会抛出错误,因为RuntimeException没有任何这样的构造函数来处理它。

我还想在我的全局异常处理程序中获取错误ID和错误消息

ex.getMessage();

但我希望函数分别获取errorId和errorMessage。怎么能实现这一目标?

java spring-boot exception exception-handling runtimeexception
1个回答
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();
    }
© www.soinside.com 2019 - 2024. All rights reserved.