Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> PHP

Kế thừa Exception (Extending Exceptions) trong PHP

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ứcMô 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