php try catch throw 用法


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

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

3.父類可以捕獲子類拋出的異常

 

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"; }

上段代碼執行結果:

sun----ExceptionNew

 


免責聲明!

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



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