java自定義異常使用佔位符傳參
阿新 • • 發佈:2020-12-12
java自定義異常使用佔位符傳參
舉例:
“姓名:{0},年齡:{1},年齡不足18”,錯誤資訊為:“姓名:張三,年齡:11,年齡不足18”
MyException類
public class MyException extends RuntimeException { private String msgFormat; // 錯誤資訊 private Object[] msgParams; // 錯誤引數 public MyException(String msg) { // 如果不傳引數,直接呼叫父類構造方法 super(msg); this.msgFormat = msg; } public MyException(String msg, Object... msgParams) { this.msgFormat = msg; this.msgParams = msgParams; } @Override public String getMessage() { if(StringUtils.isNotBlank(getMsgFormat())){ if(msgParams!=null && msgParams.length>0){ return MessageFormat.format(msgFormat, msgParams); } } return super.getMessage(); // 如果不傳引數,直接呼叫父類方法 } // 省略getter、setter }
測試:
public static void main(String[] args) {
try {
throw new MyException("姓名:{0},年齡:{1},年齡不足18","張三",11);
}
catch (Exception e){
e.printStackTrace();
}
throw new MyException("姓名:{0},年齡:{1},年齡不足18");
}
輸出