การจัดการข้อผิดพลาด (error handling) ใน Freemarker มีความสำคัญเพราะการเกิดข้อผิดพลาดขณะประมวลผล template อาจทำให้เว็บไซต์ของคุณแสดงผลไม่ถูกต้องหรือหยุดทำงานได้. ดังนั้น, มันจึงเป็นไปในทางที่ดีที่จะรู้วิธีการจัดการกับข้อผิดพลาดเหล่านั้น.
Freemarker ให้คุณกำหนดว่าจะทำอย่างไรเมื่อเกิดข้อผิดพลาด:
TemplateExceptionHandler.RETHROW_HANDLER
: ยกเลิกและส่งต่อข้อผิดพลาดนั้นออกไป
TemplateExceptionHandler.DEBUG_HANDLER
: แสดงข้อผิดพลาดแบบเต็ม
TemplateExceptionHandler.HTML_DEBUG_HANDLER
: แสดงข้อผิดพลาดในรูปแบบ HTML
TemplateExceptionHandler.IGNORE_HANDLER
: ไม่แสดงข้อผิดพลาดเลย
การตั้งค่า:
Configuration cfg = new Configuration(Configuration.VERSION_2_3_30);
cfg.setTemplateExceptionHandler(TemplateExceptionHandler.RETHROW_HANDLER);
<#attempt>
และ
<#recover>
:คุณสามารถจัดการข้อผิดพลาดภายใน template โดยใช้คำสั่ง
และ
<#attempt>
:
<#recover>
<#attempt>
<!-- Code that might cause an error -->
${unknownVariable}
<#recover>
Oops! Something went wrong.
</#attempt>
คุณสามารถใช้ ??
เพื่อตรวจสอบว่าตัวแปรมีค่าหรือไม่:
<#if user?? >
Hello, ${user}!
<#else>
Hello, Guest!
</#if>
!
:Hello, ${user!"Guest"}!
เมื่อคุณส่งข้อมูลจาก Java ไปยัง template, ข้อผิดพลาดที่เกิดขึ้นใน Java สามารถจัดการได้ในระดับ Java ด้วย try-catch
:
try {
Template template = cfg.getTemplate("template.ftl");
template.process(dataModel, out);
} catch (TemplateException te) {
// Handle template error here
}
การรู้วิธีจัดการข้อผิดพลาดใน Freemarker เป็นสิ่งที่สำคัญในการสร้างเว็บไซต์หรือแอปพลิเคชันที่มีความเสถียรและประสิทธิภาพ.
จำนวนคนดู : 1,391 | วันที่สร้าง : 08/09/2023 |