溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

PHP中自定義異常處理類的作用是什么

發(fā)布時(shí)間:2021-06-21 17:29:45 來(lái)源:億速云 閱讀:229 作者:Leah 欄目:編程語(yǔ)言

PHP中自定義異常處理類的作用是什么,很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來(lái)學(xué)習(xí)下,希望你能有所收獲。

自定義異常處理類:

final:如果用來(lái)修飾類,那么代表這個(gè)類不能被繼承,如果用來(lái)修飾方法,代表這個(gè)方法不能被重寫

要繼承自官方的異常處理類,方法自已隨便添加,父類方法注意能不能重寫。

[注]如果多個(gè)catch,要將自定義的異常類寫到上面,將官方異常類寫到下面

嵌套:在try里面可以在建立try

自定義異常處理函數(shù)(了解)

set_exception_ handler('test') ;

注冊(cè)一個(gè)函數(shù),當(dāng)拋出異常的時(shí)候,就會(huì)被這個(gè)函數(shù)自動(dòng)捕獲到,=該函數(shù)有一個(gè)參數(shù),參數(shù)就是異常對(duì)象

我們以代碼為例:

<?php
function test($e)
{
echo $e->getMessage();
}
set_exception_handler('test');
throw new Exception( '現(xiàn)在有異常了');

PHP中自定義異常處理類的作用是什么

關(guān)于異常處理類,我們還是以代碼的形式給大家解釋,首先我們還是要新建一個(gè)文件,我們定義一個(gè)class類,我們需要繼承官方的異常處理類,緊接著我們?cè)陬惱锩娑x一個(gè)(function)方法,假如說(shuō)我們通過(guò)try嘗試執(zhí)行代碼的時(shí)候,我們就可以通過(guò)catch,通過(guò)自己的異常處理類來(lái)捕獲即可,我們通過(guò)代碼演示如下:

<?php
class MyException extends Exception
{
function demo( )
{
  echo '執(zhí)行第二套方案<br />' ;
}
}
try {
  echo '我將于茫茫人海中訪我唯一靈魂之伴侶<br />';
  throw new MyException( '主人出錯(cuò)啦');
  echo '得之,我幸;不得,我命<br />';
} catch (MyException $e) {
  echo $e->getMessage();
}
?>

代碼演示結(jié)果如下:

PHP中自定義異常處理類的作用是什么

下面是我們自己定義的異常處理類,如果執(zhí)行有錯(cuò)誤了,我們可以執(zhí)行,第二套方法,

catch (MyException $e) {
  echo $e->getMessage();
  echo '<hr>';
  $e->demo();
}

代碼演示結(jié)果如下:

PHP中自定義異常處理類的作用是什么

這是我們自己定義的有關(guān)異常處理類的;

我們復(fù)制一下剛剛的代碼,我們?nèi)フ乙幌碌降啄膫€(gè)catch能夠捕捉到異常,代碼如下:

try {
  echo '我將于茫茫人海中訪我唯一靈魂之伴侶<br />';
  throw new MyException( '主人出錯(cuò)啦');
  echo '得之,我幸;不得,我命<br />';
} catch (MyException $e) {
  echo '因?yàn)閻?ài)過(guò),所以慈悲';
}catch (Exception $e){
  echo '因?yàn)槎茫詫捜?#39;;
}

代碼演示結(jié)果如下:

PHP中自定義異常處理類的作用是什么

由代碼可知,說(shuō)明捕捉到的異常是我們自定義的異常處理類來(lái)捕捉這個(gè)對(duì)象的,如果我們把MyException和Exception調(diào)換一下順序會(huì)怎么?我們運(yùn)行會(huì)發(fā)現(xiàn)還是第一個(gè),

注意:Exception 是官方的一個(gè)類,他是一個(gè)父類,他是MyException的一個(gè)父類,如果他們兩個(gè)在同時(shí)捕獲異常的時(shí)候,我們需要先先將子類的東西放在前面,再寫官方的類,

看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注億速云行業(yè)資訊頻道,感謝您對(duì)億速云的支持。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

php
AI