異常處理-PHP手冊筆記

傑克.陳發表於2015-06-19
原文:異常處理 – PHP手冊筆記

PHP程式碼中所產生的異常可被throw語句丟擲,並被catch語句捕獲。需要進行異常處理的程式碼都必須放入try程式碼塊內,每一個try至少要有一個與之對應的catch。當一個異常被丟擲時,所在程式碼塊後面的程式碼將不會繼續執行,此時PHP會嘗試查詢第一個能與之匹配的catch。當然,PHP允許在catch程式碼塊內再次丟擲throw異常。如果一個異常沒有被捕獲,且未使用set_exception_handler()作相應處理的話,PHP將會產生一個嚴重錯誤。

這裡有一個關於異常使用的示例。

<?php
function inverse($x) {
    if(!$x) {
        throw new Exception(`Division by zero.`);
    } else {
        return 1 / $x;
    }
}
try {
    echo inverse(5) . `<br>`;
    echo inverse(0) . `<br>`;
} catch(Exception $e) {
    echo `Caught exception: ` . $e->getMessage() . `<br>`;
}
echo `hello`;

還有一個異常巢狀的示例。

<?php
class MyException extends Exception {}
class Test {
    public function testing() {
        try {
            try {
                throw new MyException(`foo.`);
            } catch(MyException $e) {
                throw $e;
            }
        } catch(Exception $e) {
            var_dump($e->getMessage());
        }
    }
}
$foo = new Test;
$foo->testing();

使用者可以用自定義的異常處理類來擴充套件PHP內建的異常處理類。

(全文完)


相關文章