php try catch throw 用法


1.try catch 捕捉不到fatal error致命錯誤

2.只有拋出異常才能被截獲,如果異常拋出了卻沒有被捕捉到,就會產生一個fatal error。

3.父類可以捕獲拋出的子類異常,Exception 可以捕獲繼承Exception 類型的異常

class ExceptionNew extends Exception{
        
}

function try_throw($type) {
        if ($type == 1) {
                throw new ExceptionNew("sunyue");
        }
}

try {
        try_throw(1);
} catch (Exception $e) {
        echo $e->getMessage();
}

  

4.try中的代碼一旦拋出異常,代碼將停止運行,直接執行catch中的代碼

5.多個catch捕獲多個異常

PHP將查詢一個匹配的catch代碼塊。如果有多個catch代碼塊,傳遞給每一個catch代碼塊的對象必須具有不同類型(或者可以用同一父類去捕獲,這樣只要一個catch就可以了),這樣PHP可以找到需要進入哪一個catch代碼塊。當try代碼塊不再拋出異常或者找不到catch能匹配所拋出的異常時,PHP代碼就會在跳轉最后一個catch的后面繼續執行。因為原則4,所以每次其實這能拋出一個異常,一個異常被捕獲。

class ExceptionNew extends Exception{
        
}
class MyException extends Exception{
        
}

function try_throw($type) {
        if ($type == 1) {
                throw new ExceptionNew("sun");
        }
        if($type > 0){
                throw new MyException("yue");
        }
}

try {
        try_throw(1);   
//        try_throw(2);
}catch (ExceptionNew $e) {
        echo $e->getMessage();echo "----ExceptionNew";
}catch (MyException $e) {
        echo $e->getMessage();echo "----MyException";
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM