上篇文章為大家介紹了《PHP中什麼是異常處理?如何使用異常處理中的try—catch? 》,本文繼續介紹PHP中什麼是自訂異常處理類別?我們如何解決自訂異常處理類別?有一定的參考價值,有需要的朋友可以參考一下,希望對大家有幫助。
自訂例外處理類別:
#final:如果用來修飾類別,那麼就代表這個類別不能被繼承,如果用來修飾方法,代表這個方法不能被重寫
要繼承自官方的異常處理類,方法自已隨便添加,父類方法注意能不能重寫。
[註]如果多個catch,要將自訂的異常類別寫到上面,將官方異常類別寫到下面
##巢狀: 在try裡面可以在建立try
自訂例外處理函數(了解)set_exception_ handler('test') ;註冊一個函數,當拋出例外的時候,就會被這個函數自動捕捉到,=函數有一個參數,參數就是異常物件我們以程式碼為例:
<?php function test($e) { echo $e->getMessage(); } set_exception_handler('test'); throw new Exception( '现在有异常了');關於異常處理類,我們還是以程式碼的形式跟大家解釋,首先我們還是要新建一個文件,我們定義一個class類,我們需要繼承官方的異常處理類,緊接著我們在類裡面定義一個(function)方法,假如說我們透過try嘗試執行程式碼的時候,我們就可以透過catch,透過自己的異常處理類別來捕獲即可,我們透過程式碼示範如下:
<?php class MyException extends Exception { function demo( ) { echo '执行第二套方案<br />' ; } } try { echo '我将于茫茫人海中访我唯一灵魂之伴侣<br />'; throw new MyException( '主人出错啦'); echo '得之,我幸;不得,我命<br />'; } catch (MyException $e) { echo $e->getMessage(); } ?>程式碼示範結果如下: 下面是我們自己定義的異常處理類,如果執行有錯誤了,我們可以執行,第二套方法,
catch (MyException $e) { echo $e->getMessage(); echo '<hr>'; $e->demo(); }程式碼演示結果如下: 這是我們自己定義的有關異常處理類別的;我們複製一下剛剛的程式碼,我們去找一下到底哪個catch能夠捕捉到異常,程式碼如下:
try { echo '我将于茫茫人海中访我唯一灵魂之伴侣<br />'; throw new MyException( '主人出错啦'); echo '得之,我幸;不得,我命<br />'; } catch (MyException $e) { echo '因为爱过,所以慈悲'; }catch (Exception $e){ echo '因为懂得,所以宽容'; }程式碼示範結果如下: 由程式碼可知,說明捕捉到的例外是我們自訂的例外處理類別來捕捉這個物件的,如果我們把MyException和Exception調換一下順序會怎麼辦?我們運行會發現還是第一個,
注意:Exception 是官方的一個類,他是一個父類,他是MyException的一個父類,如果他們兩個在同時捕獲異常的時候,我們需要先將子類的東西放在前面,再寫官方的類,
推薦學習:以上是PHP中什麼是自訂異常處理類別?如何解決自訂異常處理類別?的詳細內容。更多資訊請關注PHP中文網其他相關文章!