1. 程式人生 > >PHP的異常以及異常存在的意義

PHP的異常以及異常存在的意義

php的try catch與其它語言的try catch相比有許多不同,而且用起來相對比較不爽。

  php中,如果你製作的站點相對較大,同時模組化,並且在錯誤處理機制上有一套自己的處理機制,可以嘗試使用try catch,否則,可以考慮不使用它。

  PHP的try catch是捕獲異常,但它卻無法捕獲PHP的內部異常,必須是經過throw語句丟擲的異常,它才能正常捕獲,這也意味著,如果你的try程式碼塊中,沒有任何throw語句,或者包含了throw語句的函式,那麼,try catch語句就是廢品,嘛用沒有。

  但是,在大型網站的構建中,用於建設一套自己的自定義錯誤處理機制,try catch就顯現出了它的強大,比如,我在構建一個幾乎整站都會用到的一個公用函式,在這個函式裡,我做了大量可能出現的錯誤判斷,並將錯誤throw,那麼在我後面引用這個函式的時候,就可以對其try,並在其catch中對該錯誤進行判斷並做針對性處理。

下面的這做程式碼:
複製程式碼
function glo(num){
    if(is_int(num)){
        echo '輸入正確';
    }else{
        throw new Exception('傳值型別錯誤!');
    }
}        
複製程式碼 那麼以後我一旦呼叫這個函式,但是傳入的值型別不正確的時候,就會出現異常:

glo("str");

這時候如果使用try catch,就可以捕獲這個異常
try{
    glo("str");
}catch($e){
    echo $e->getMessage();
}
當然,以上的程式碼僅為示例,看起來好像用了try catch還不如不用來得方便,但是到了大型系統中,這樣的機制如果用得有效,則會起到不錯的效果。