PHP จัดการ 7 ข้อผิดพลาด
PHP 7 ที่จะเปลี่ยนวิธีที่ผิดรายงานส่วนใหญ่ ซึ่งแตกต่างจากกลไกการรายงานข้อผิดพลาด PHP 5 แบบดั้งเดิมและตอนนี้ส่วนใหญ่ของข้อผิดพลาดที่มีการโยนข้อผิดพลาดข้อยกเว้น
ยกเว้นข้อผิดพลาดนี้สามารถเป็นปกติผิดปกติจับลอง / จับบล็อก ถ้าไม่มีการจับคู่ลอง / จับบล็อกโทรจัดการข้อยกเว้น (() ลงทะเบียนโดย set_exception_handler) ที่สำหรับการประมวลผล หากคุณยังไม่ได้ลงทะเบียนจัดการข้อยกเว้นมีการประมวลผลในลักษณะดั้งเดิม: รายงานเป็นข้อผิดพลาดร้ายแรง (ข้อผิดพลาดร้ายแรง)
ระดับข้อผิดพลาดไม่ได้ขยายออกมาจากชั้นข้อยกเว้นเพื่อใช้ catch (Exception $ E) { ... } รหัสนี้ไม่ได้ที่จะจับข้อผิดพลาด คุณสามารถจับข้อผิดพลาดกับการจับ (ข้อผิดพลาด $ E) { ... } รหัสนี้หรือโดยการจัดการข้อยกเว้นที่ลงทะเบียน (set_exception_handler ())
ลำดับชั้นยกเว้นข้อผิดพลาด
- ความผิดพลาด
- ArithmeticError
- AssertionError
- DivisionByZeroError
- ParseError
- TypeError
- ข้อยกเว้น
- ...
ตัวอย่าง
ตัวอย่าง
<php?
MathOperations ระดับ
{
การป้องกัน $ n = 10;
// การดำเนินงานที่เหลือหารเป็น 0 ยกเว้นจะโยน
ฟังก์ชั่นที่สาธารณะ doOperation (): สตริง
{
try {
มูลค่า $ = $ นี้ -> n % 0;
กลับค่า $;
} catch (DivisionByZeroError $ E) {
กลับ $ E -> getMessage () ;
}
}
}
$ mathOperationsObj = MathOperations ใหม่ ();
พิมพ์ ($ mathOperationsObj -> doOperation ( ));
?>
MathOperations ระดับ
{
การป้องกัน $ n = 10;
// การดำเนินงานที่เหลือหารเป็น 0 ยกเว้นจะโยน
ฟังก์ชั่นที่สาธารณะ doOperation (): สตริง
{
try {
มูลค่า $ = $ นี้ -> n % 0;
กลับค่า $;
} catch (DivisionByZeroError $ E) {
กลับ $ E -> getMessage () ;
}
}
}
$ mathOperationsObj = MathOperations ใหม่ ();
พิมพ์ ($ mathOperationsObj -> doOperation ( ));
?>
เอาท์พุทการทำงานของโปรแกรมข้างต้นเป็น:
Modulo by zero