我正在构建这样的自定义异常。
public class ValidationException extends RuntimeException {
public validationException(String errorId, String errorMsg) {
super(errorId, errorMsg);
}
}
这当然会抛出错误,因为RuntimeException没有任何这样的构造函数来处理它。
我还想在我的全局异常处理程序中获取错误ID和错误消息
ex.getMessage();
但我希望函数分别获取errorId和errorMessage。怎么能实现这一目标?
你想将errorId
和errorMsg
作为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();
}