คำสั่ง throw

คำสั่ง throw ใช้สำหรับการโยนข้อยกเว้นอย่างชัดเจนใน PHP มันรับพารามิเตอร์หนึ่งตัว - ออบเจ็กต์ข้อยกเว้น ซึ่งต้องเป็นอินสแตนซ์ของคลาส ที่สืบทอดมาจากคลาสพื้นฐาน Exception เมื่อเรียกใช้ฟังก์ชันนี้ การทำงานของโค้ดปัจจุบัน จะหยุดทันที และ PHP จะพยายามค้นหาบล็อก catch ที่เกี่ยวข้องเพื่อจัดการกับข้อยกเว้น

ไวยากรณ์

phpthrow new ExceptionClass(message, code, previous);

ตัวอย่าง

ตัวอย่างง่ายๆ ของการสร้างข้อยกเว้น:

php<?php
  $age = -5;
  if ($age < 0) {
    throw new Exception('อายุไม่สามารถเป็นค่าลบได้');
  }
?>

ผลลัพธ์จากการรันโค้ด:

phpFatal error: Uncaught Exception: อายุไม่สามารถเป็นค่าลบได้

ตัวอย่าง

ตัวอย่างพร้อมการจัดการข้อยกเว้น:

php<?php
  try {
    $res = 10 / 0;
    if (is_infinite($res)) {
      throw new Exception('การหารด้วยศูนย์');
    }
  } catch (Exception $e) {
    echo 'ข้อผิดพลาด: ' . $e->getMessage();
  }
?>

ผลลัพธ์จากการรันโค้ด:

php'ข้อผิดพลาด: การหารด้วยศูนย์'

ตัวอย่าง

การใช้ข้อยกเว้นแบบกำหนดเอง:

php<?php
  class MyCustomException extends Exception {}
  
  try {
    throw new MyCustomException('ข้อความข้อผิดพลาดแบบกำหนดเอง');
  } catch (MyCustomException $e) {
    echo 'จับข้อผิดพลาดแบบกำหนดเองได้: ' . $e->getMessage();
  }
?>

ผลลัพธ์จากการรันโค้ด:

php'จับข้อผิดพลาดแบบกำหนดเองได้: ข้อความข้อผิดพลาดแบบกำหนดเอง'

ดูเพิ่มเติม

  • โครงสร้าง try,
    ซึ่งกำหนดบล็อกโค้ดสำหรับการจัดการข้อยกเว้น
  • โครงสร้าง catch,
    ซึ่งดักจับและจัดการข้อยกเว้น
  • คลาส Exception,
    ซึ่งเป็นคลาสพื้นฐานสำหรับข้อยกเว้นทั้งหมด