Lệnh throw

Lệnh throw được sử dụng để ném ra một ngoại lệ một cách tường minh trong PHP. Nó nhận một tham số duy nhất - đối tượng ngoại lệ, phải là một thể hiện của lớp, được kế thừa từ lớp cơ sở Exception. Khi gọi hàm này, việc thực thi mã hiện tại sẽ lập tức dừng lại, và PHP cố gắng tìm khối catch tương ứng để xử lý ngoại lệ.

Cú pháp

phpthrow new ExceptionClass(message, code, previous);

Ví dụ

Ví dụ đơn giản về việc tạo ngoại lệ:

php<?php
  $age = -5;
  if ($age < 0) {
    throw new Exception('Tuổi không thể là số âm');
  }
?>

Kết quả thực thi mã:

phpFatal error: Uncaught Exception: Tuổi không thể là số âm

Ví dụ

Ví dụ với việc xử lý ngoại lệ:

php<?php
  try {
    $res = 10 / 0;
    if (is_infinite($res)) {
      throw new Exception('Chia cho không');
    }
  } catch (Exception $e) {
    echo 'Lỗi: ' . $e->getMessage();
  }
?>

Kết quả thực thi mã:

php'Lỗi: Chia cho không'

Ví dụ

Sử dụng ngoại lệ tùy chỉnh:

php<?php
  class MyCustomException extends Exception {}
  
  try {
    throw new MyCustomException('Thông báo lỗi tùy chỉnh');
  } catch (MyCustomException $e) {
    echo 'Bắt được lỗi tùy chỉnh: ' . $e->getMessage();
  }
?>

Kết quả thực thi mã:

php'Bắt được lỗi tùy chỉnh: Thông báo lỗi tùy chỉnh'

Xem thêm

  • cấu trúc try,
    xác định một khối mã để xử lý ngoại lệ
  • cấu trúc catch,
    bắt và xử lý ngoại lệ
  • lớp Exception,
    là lớp cơ sở cho tất cả các ngoại lệ