บล็อก finally ใน Try-Catch-Finally
finally จะทำงาน เสมอ ไม่ว่าจะมี Error เกิดขึ้นหรือไม่ ก่อนที่ Control จะออกจากโครงสร้าง Try-Catch ใช้สำหรับ Cleanup (ปิดไฟล์, ปิด Connection, ล้างตัวแปร)
ตัวอย่าง
<html> <body> <pre> <script>
function addition() {
document.writeln("every one should be good at addition");
}
function substraction() {
document.writeln("substraction helps you");
}
try {
addition();
division(); // ฟังก์ชันนี้ไม่มีอยู่จริง → Error
} catch (err) {
document.writeln("be good at division : " + err);
} finally {
substraction(); // ทำงานเสมอ แม้จะมี Error
}
</script> </pre> </body> </html>
ผลลัพธ์
every one should be good at addition be good at division : ReferenceError: division is not defined substraction helps you
จุดสำคัญ
- finally รัน ก่อน Return Statement ใน Try หรือ Catch
- หาก Finally มี Return จะ Override Return ของ Try/Catch
- ใช้สำหรับ Resource Cleanup (File, DB Connection, Network)