ใน 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 ตัวแปรเพื่อเก็บข้อมูลข้อยกเว้น