มาดูความแตกต่างระหว่าง Error และ Exception ใน PHP กัน:
- Error: ไม่สามารถกู้คืน (Recover) ได้ วิธีเดียวคือยุติการทำงาน ในขณะที่ Exception สามารถกู้คืนได้โดยใช้
try-catchblocks หรือโยน (throw) exception กลับไปยังผู้เรียก - ไม่สามารถจัดการ Error ด้วย
try-catchได้ แม้จะจับได้ โปรแกรมก็ไม่สามารถกู้คืนได้ ในทางกลับกัน Exception จัดการได้ด้วยtry-catchและทำให้โปรแกรมทำงานต่อได้ปกติ - Exception เกี่ยวข้องกับแอปพลิเคชัน ในขณะที่ Error เกี่ยวข้องกับสภาพแวดล้อมที่แอปพลิเคชันทำงานอยู่
ตัวอย่างการจัดการ Exception
<?php
try {
$row->insert();
$inserted = true;
}
catch (Exception $e)
{
echo "There was an error inserting the row - ".$e->getMessage();
$inserted = false;
}
echo "Some more stuff";
?>
คำอธิบาย
การทำงานของโปรแกรมจะดำเนินต่อไป - เพราะคุณ "จับ" (caught) exception ไว้ Exception จะถูกปฏิบัติเหมือน error เว้นแต่จะถูกจับ (catch) จะทำให้คุณสามารถดำเนินการโปรแกรมต่อได้แม้จะล้มเหลว
ตัวอย่าง Error
<?php $foo = [bar]; echo $foo; ?>
คำอธิบาย
การทำงานของโปรแกรมจะหยุดพร้อมแสดงข้อความ: PHP Notice: Array to string conversion