Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> PHP

PHP ErrorException


แนะนำตัว

คลาส 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