ใน PHP เวอร์ชันก่อนหน้า หากเราต้องการตรวจจับข้อยกเว้น เราก็จำเป็นต้องเก็บมันไว้ในตัวแปรเพื่อตรวจสอบว่ามีการใช้ตัวแปรนั้นหรือไม่
ก่อน PHP 8 ในการจัดการบล็อกดักจับข้อยกเว้น เราจำเป็นต้องตรวจจับข้อยกเว้น (โยนโดยบล็อกการลอง) ไปยังตัวแปร
ตัวอย่าง:การดักจับข้อยกเว้นใน PHP
<?php
function foo()
{
try{
throw new Exception('Hello');
}
catch (Exception $e) {
return $e->getMessage();
}
}
?> คำอธิบาย − ในโปรแกรมด้านบนนี้ บล็อก catch ตรวจพบข้อยกเว้นของ ตัวแปร $e . ตอนนี้ ตัวแปร$e สามารถเก็บข้อมูลใด ๆ เกี่ยวกับข้อยกเว้นเป็นรหัส ข้อความ ฯลฯ
PHP 8 แนะนำการจับที่ไม่จับ ตอนนี้ เป็นไปได้ที่จะจับข้อยกเว้นโดยไม่ต้องจับกับตัวแปร ตอนนี้เราสามารถละเลยตัวแปรได้
ตัวอย่าง:Non- Capture Exception Catches ใน PHP 8
<?php
try{
throw new Exception('hello');
}
catch (Exception) { // $e variable omitted
}
?> หมายเหตุ: ในโปรแกรมข้างต้น เราไม่ได้ใช้ $e ตัวแปรเพื่อเก็บข้อมูลข้อยกเว้น