คำสั่ง throw
คำสั่ง throw ใช้สำหรับการโยนข้อยกเว้นอย่างชัดเจนใน PHP
มันรับพารามิเตอร์หนึ่งตัว - ออบเจ็กต์ข้อยกเว้น ซึ่งต้องเป็นอินสแตนซ์ของคลาส
ที่สืบทอดมาจากคลาสพื้นฐาน Exception เมื่อเรียกใช้ฟังก์ชันนี้ การทำงานของโค้ดปัจจุบัน
จะหยุดทันที และ PHP จะพยายามค้นหาบล็อก catch ที่เกี่ยวข้องเพื่อจัดการกับข้อยกเว้น
ไวยากรณ์
throw new ExceptionClass(message, code, previous);
ตัวอย่าง
ตัวอย่างง่ายๆ ของการสร้างข้อยกเว้น:
<?php
$age = -5;
if ($age < 0) {
throw new Exception('อายุไม่สามารถเป็นค่าลบได้');
}
?>
ผลลัพธ์จากการรันโค้ด:
Fatal error: Uncaught Exception: อายุไม่สามารถเป็นค่าลบได้
ตัวอย่าง
ตัวอย่างพร้อมการจัดการข้อยกเว้น:
<?php
try {
$res = 10 / 0;
if (is_infinite($res)) {
throw new Exception('การหารด้วยศูนย์');
}
} catch (Exception $e) {
echo 'ข้อผิดพลาด: ' . $e->getMessage();
}
?>
ผลลัพธ์จากการรันโค้ด:
'ข้อผิดพลาด: การหารด้วยศูนย์'
ตัวอย่าง
การใช้ข้อยกเว้นแบบกำหนดเอง:
<?php
class MyCustomException extends Exception {}
try {
throw new MyCustomException('ข้อความข้อผิดพลาดแบบกำหนดเอง');
} catch (MyCustomException $e) {
echo 'จับข้อผิดพลาดแบบกำหนดเองได้: ' . $e->getMessage();
}
?>
ผลลัพธ์จากการรันโค้ด:
'จับข้อผิดพลาดแบบกำหนดเองได้: ข้อความข้อผิดพลาดแบบกำหนดเอง'