Giới thiệu
Class Exception implements interface Throwable và là base class cho tất cả class Exception, bao gồm exception định nghĩa sẵn và user-defined exception. Class Exception định nghĩa một số phương thức final (không thể override) để triển khai từ Throwable interface, và phương thức __toString() có thể override để trả về biểu diễn chuỗi của Exception object.
| Phương thức | Mô tả |
|---|---|
| final public function getMessage() | Thông điệp của exception |
| final public function getCode() | Mã code của exception |
| final public function getFile() | Tên file nguồn |
| final public function getLine() | Dòng nguồn |
| final public function getTrace() | Mảng backtrace() |
| final public function getPrevious() | Exception trước đó |
| final public function getTraceAsString() | Chuỗi định dạng của trace |
| public function __toString() | Chuỗi định dạng để hiển thị |
Nếu user-defined exception class định nghĩa lại constructor, nó nên gọi parent::__construct() để đảm bảo tất cả dữ liệu có sẵn được gán đúng cách.
Ví dụ: Custom Exception
Script sau định nghĩa custom exception class myException. Loại exception này được ném nếu giá trị $num nhỏ hơn 0 hoặc lớn hơn 100. Phương thức getMessage() trả về thông báo lỗi và getLine() trả về dòng code xuất hiện exception.
<?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();
}
?>
Kết quả
Chạy code với $num=125 và $num=90 để thấy thông báo lỗi và thông báo số hợp lệ:
error : 125 is invalid number in line no 10