แนะนำตัว
คลาส Exception ของ PHP ใช้ Throwable อินเตอร์เฟซ. ErrorException คลาสขยาย ข้อยกเว้น ระดับ. ErrorException มีไว้เพื่อให้แสดงอย่างชัดเจนเมื่อคุณต้องการตรวจจับและจัดการข้อผิดพลาดที่อาจถูกละเว้น เช่น ประกาศหรือคำเตือน
แกน PHP ประกอบด้วยค่าคงที่ข้อผิดพลาดที่กำหนดไว้ล่วงหน้าต่อไปนี้
ค่า | ค่าคงที่ | คำอธิบาย |
---|---|---|
1 | E_ERROR | ข้อผิดพลาดรันไทม์ร้ายแรง |
2 | E_WARNING | คำเตือนรันไทม์ (ข้อผิดพลาดที่ไม่ร้ายแรง) |
4 | E_PARSE | ข้อผิดพลาดในการแยกวิเคราะห์เวลาคอมไพล์ |
8 | E_NOTICE | ประกาศรันไทม์ |
16 | E_CORE_ERROR | ข้อผิดพลาดร้ายแรงที่เกิดขึ้นระหว่างการเริ่มต้นเริ่มต้นของ PHP |
32 | E_CORE_WARNING | คำเตือน (ข้อผิดพลาดที่ไม่ร้ายแรง) ที่เกิดขึ้นระหว่างการเริ่มต้นเริ่มต้นของ PHP |
64 | E_COMPILE_ERROR | ข้อผิดพลาดในการคอมไพล์ร้ายแรง |
128 | E_COMPILE_WARNING | คำเตือนเวลาคอมไพล์ (ข้อผิดพลาดที่ไม่ร้ายแรง) |
256 | E_USER_ERROR | ข้อความแสดงข้อผิดพลาดที่ผู้ใช้สร้างขึ้น |
512 | E_USER_WARNING | ข้อความเตือนที่ผู้ใช้สร้างขึ้น |
1024 | E_USER_NOTICE | ข้อความแจ้งเตือนที่ผู้ใช้สร้างขึ้น |
2048 | E_STRICT | หาก Enabled PHP แนะนำให้เปลี่ยนแปลงโค้ดของคุณเพื่อให้แน่ใจว่าสามารถทำงานร่วมกันได้และส่งต่อโค้ดของคุณร่วมกันได้ |
4096 | E_RECOVERABLE_ERROR | จับข้อผิดพลาดร้ายแรงได้ |
8192 | E_DEPRECATED | ประกาศรันไทม์ |
16384 | E_USER_DEPRECATED | ข้อความเตือนที่ผู้ใช้สร้างขึ้น |
32767 | E_ALL | ข้อผิดพลาดและคำเตือนทั้งหมด E_STRICT |
นอกจากคุณสมบัติและเมธอดที่สืบทอดมาจากคลาส Exception แล้ว คลาส ErrorException ยังแนะนำคุณสมบัติหนึ่งอย่างและอีกวิธีหนึ่งดังนี้ -
protected int severity ; final public getSeverity ( void ) : int
ความรุนแรงของข้อยกเว้นแสดงด้วยจำนวนเต็มที่เกี่ยวข้องกับประเภทของข้อผิดพลาดในตารางด้านบน
ตัวอย่างข้อยกเว้นข้อผิดพลาด
ในสคริปต์ต่อไปนี้ ผู้ใช้กำหนดฟังก์ชัน ตัวจัดการข้อผิดพลาด ถูกตั้งค่าเป็นตัวจัดการข้อผิดพลาดด้วย set_error_handler() การทำงาน. มันส่ง ErrorException เมื่อพบข้อผิดพลาดร้ายแรงในกรณีที่ไม่พบไฟล์สำหรับการอ่าน
ตัวอย่าง
<?php function errhandler($severity, $message, $file, $line) { if (!(error_reporting() & $severity)) { echo "no error"; return; } throw new ErrorException("Fatal Error:No such file or directory", 0, E_ERROR); } set_error_handler("errhandler"); /* Trigger exception */ try{ $data=file_get_contents("nofile.php"); echo $data; } catch (ErrorException $e){ echo $e->getMessage(); } ?>
ตัวอย่างด้านบนแสดงผลลัพธ์ต่อไปนี้
ผลลัพธ์
Fatal Error:No such file or directory