การจัดการข้อผิดพลาดและการแก้ไข

การจัดการข้อผิดพลาด (error handling) ใน Freemarker มีความสำคัญเพราะการเกิดข้อผิดพลาดขณะประมวลผล template อาจทำให้เว็บไซต์ของคุณแสดงผลไม่ถูกต้องหรือหยุดทำงานได้. ดังนั้น, มันจึงเป็นไปในทางที่ดีที่จะรู้วิธีการจัดการกับข้อผิดพลาดเหล่านั้น.

1. การกำหนดการแสดงผลเมื่อเกิดข้อผิดพลาด:

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

2. การใช้ <#attempt> และ
<#recover>
:

คุณสามารถจัดการข้อผิดพลาดภายใน template โดยใช้คำสั่ง
<#attempt>
และ
<#recover>
:

<#attempt>
<!-- Code that might cause an error -->
${unknownVariable}
<#recover>
Oops! Something went wrong.
</#attempt>

3. การตรวจสอบค่าว่าง:

คุณสามารถใช้ ?? เพื่อตรวจสอบว่าตัวแปรมีค่าหรือไม่:

<#if user?? >
Hello, ${user}!
<#else>
Hello, Guest!
</#if>

4. การกำหนดค่าเริ่มต้นด้วย !:

Hello, ${user!"Guest"}! 

5. การจัดการข้อผิดพลาดจากภาษา Java:

เมื่อคุณส่งข้อมูลจาก 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,340 วันที่สร้าง : 08/09/2023