如何在自定义异常构造函数参数中使用多个错误特定参数?
How to use multiple error specific parameter in custom Exception constructor parameters?
我正在构建一个类似这样的自定义异常。
public class ValidationException extends RuntimeException {
public validationException(String errorId, String errorMsg) {
super(errorId, errorMsg);
}
}
这当然会引发错误,因为 RuntimeException 没有任何此类构造函数来处理此问题。
我还想通过
在我的 GlobalExceptionalHandler 中获取 errorId 和 errorMsg
ex.getMessage();
但我想要函数分别获取 errorId 和 errorMessage。如何实现?
您想将 errorId
和 errorMsg
作为 ValidationException class 的字段,就像您对普通 class.
所做的一样
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();
}
我正在构建一个类似这样的自定义异常。
public class ValidationException extends RuntimeException {
public validationException(String errorId, String errorMsg) {
super(errorId, errorMsg);
}
}
这当然会引发错误,因为 RuntimeException 没有任何此类构造函数来处理此问题。
我还想通过
在我的 GlobalExceptionalHandler 中获取 errorId 和 errorMsgex.getMessage();
但我想要函数分别获取 errorId 和 errorMessage。如何实现?
您想将 errorId
和 errorMsg
作为 ValidationException class 的字段,就像您对普通 class.
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();
}