1. 程式人生 > 其它 >java自定義異常使用佔位符傳參

java自定義異常使用佔位符傳參

技術標籤:javaexception

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");
}

輸出