自訂標籤引入屬性交互後,可能出現非法參數錯誤(如無效日期格式字串)。需在標籤代碼中捕獲並處理 IllegalArgumentException。
頁面傳入 format="PHH:mm a, MM/dd/yyyy"(錯誤模式字母 P),導致 SimpleDateFormat 拋出異常,頁面顯示錯誤堆疊。
public int doEndTag() {
try {
String pattern = (format != null) ? format : "yyyy-MM-dd";
SimpleDateFormat sdf = new SimpleDateFormat(pattern);
pageContext.getOut().print(sdf.format(new Date()));
} catch (IllegalArgumentException e) {
// 記錄日誌,輸出預設格式或友善提示
pageContext.getOut().print(new Date().toString());
} catch (IOException e) { /* 忽略 */ }
return EVAL_PAGE;
}
捕獲異常並提供降級輸出,避免破壞整頁面渲染。