การจัดการข้อผิดพลาด (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,932 | วันที่สร้าง : 08/09/2023 |