我做了一个例外,以说明导致错误的原因。
下面是我的代码
public class DefaultException extends RuntimeException {
/**
* DefaultException
*/
private static final long serialVersionUID = 1L;
/**
* Constructor
* @param cause exception
*/
public DefaultException(Exception cause) {
super(cause) ;
}
/**
* Constructor
* @param cause error message
*/
public DefaultException(String message) {
super(message) ;
}
/**
* Constructor
* @param cause message, exception
*/
public DefaultException(String message, Throwable cause) {
super(message, cause) ;
}
}
生成这些构造函数之一,指定成功完成了什么错误。
但是我想在那里另外返回一个错误代码。
看起来像...
public DefaultException(String message, String errorCode) {
super(message, errorCode) ;
}
但是
Throwable
类没有该构造函数,因此无法以这种方式实现。我怎样才能做到这一点?
最佳答案
将errorCode
放入DefaultException
所具有的字段中,然后在捕获DefaultException
时,调用getter进行检索。
public class DefaultException extends RuntimeException {
private String errorCode;
public DefaultException(String message, String errorCode) {
super(message);
this.errorCode = errorCode;
}
public String getErrorCode() {
return errorCode;
}
// ...
}
然后,当您抓住它时,您可以像这样去:
try {
//something that will error
} catch (DefaultException e) {
String errorCode = e.getErrorCode();
// ...
}