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

PHP ขยายข้อยกเว้น


แนะนำตัว

คลาสข้อยกเว้นใช้ โยนได้ ส่วนต่อประสานและเป็นคลาสพื้นฐานสำหรับ ข้อยกเว้น . ทั้งหมด คลาส ข้อยกเว้นที่กำหนดไว้ล่วงหน้า เช่นเดียวกับข้อยกเว้นที่ผู้ใช้กำหนด คลาสข้อยกเว้นกำหนดวิธีการขั้นสุดท้าย (ไม่สามารถแทนที่ได้) เพื่อนำไปใช้จากอินเทอร์เฟซ 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