แนะนำตัว
คลาสข้อยกเว้นใช้ โยนได้ ส่วนต่อประสานและเป็นคลาสพื้นฐานสำหรับ ข้อยกเว้น . ทั้งหมด คลาส ข้อยกเว้นที่กำหนดไว้ล่วงหน้า เช่นเดียวกับข้อยกเว้นที่ผู้ใช้กำหนด คลาสข้อยกเว้นกำหนดวิธีการขั้นสุดท้าย (ไม่สามารถแทนที่ได้) เพื่อนำไปใช้จากอินเทอร์เฟซ Throwable และ __tostring() เมธอดที่สามารถแทนที่เพื่อส่งคืนการแสดงสตริงของอ็อบเจกต์ Exception
| ฟังก์ชันสาธารณะขั้นสุดท้าย getMessage() | ข้อความยกเว้น |
| ฟังก์ชั่นสาธารณะขั้นสุดท้าย getCode() | รหัสข้อยกเว้น |
| ฟังก์ชันสาธารณะขั้นสุดท้าย getFile() | ชื่อไฟล์ต้นทาง |
| ฟังก์ชั่นสาธารณะขั้นสุดท้าย getLine() | แหล่งที่มา |
| ฟังก์ชันสาธารณะขั้นสุดท้าย getTrace() | อาร์เรย์ของ backtrace() |
| ฟังก์ชั่นสาธารณะขั้นสุดท้าย getPrevious() | ข้อยกเว้นก่อนหน้า |
| ฟังก์ชันสาธารณะขั้นสุดท้าย getTraceAsString() | รูปแบบสตริงของการติดตาม |
| ฟังก์ชันสาธารณะ __toString() | รูปแบบสตริงสำหรับแสดงผล |
หากผู้ใช้กำหนดคลาสข้อยกเว้นกำหนดคอนสตรัคเตอร์อีกครั้ง ก็ควรเรียก parent::__construct() เพื่อให้แน่ใจว่ามีการกำหนดข้อมูลที่มีอยู่ทั้งหมดอย่างถูกต้อง
ตัวอย่าง
สคริปต์ต่อไปนี้กำหนดคลาสข้อยกเว้นแบบกำหนดเองที่เรียกว่า myException . ข้อยกเว้นประเภทนี้จะถูกส่งออกไปหากค่าของ $num น้อยกว่า 0 หรือมากกว่า 100 getMessage() เมธอดของ Exception class ส่งคืนข้อความแสดงข้อผิดพลาดและ getLine() method ส่งคืนบรรทัดของรหัสที่มีข้อยกเว้นปรากฏขึ้น
ตัวอย่าง
<?php
class myException extends Exception{
function message(){
return "error : " . $this->getMessage() . " in line no " . $this->getLine();
}
}
$num=125;
try{
if ($num>100 || $num<0)
throw new myException("$num is invalid number");
else
echo "$num is a valid number";
}
catch (myException $m){
echo $m->message();
}
?> ผลลัพธ์
เรียกใช้โค้ดด้านบนด้วย $num=125 และ $num=90 เพื่อรับข้อความแสดงข้อผิดพลาดและข้อความแสดงหมายเลขที่ถูกต้อง
error : 125 is invalid number in line no 10