您好,登錄后才能下訂單哦!
這篇文章主要介紹php7拋出異常的方法,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!
PHP 7 改變了大多數(shù)錯(cuò)誤的報(bào)告方式。不同于 PHP 5 的傳統(tǒng)錯(cuò)誤報(bào)告機(jī)制,現(xiàn)在大多數(shù)錯(cuò)誤被作為 Error 異常拋出。
這種 Error 異??梢韵衿胀ó惓R粯颖?try / catch 塊所捕獲。如果沒有匹配的 try / catch 塊, 則調(diào)用異常處理函數(shù)(由 set_exception_handler() 注冊(cè))進(jìn)行處理。
如果尚未注冊(cè)異常處理函數(shù),則按照傳統(tǒng)方式處理:被報(bào)告為一個(gè)致命錯(cuò)誤(Fatal Error)。
Error 類并不是從 Exception 類 擴(kuò)展出來的,所以用 catch (Exception $e) { ... } 這樣的代碼是捕獲不 到 Error 的。你可以用 catch (Error $e) { ... } 這樣的代碼,或者通過注冊(cè)異常處理函數(shù)( set_exception_handler())來捕獲 Error。
Error 異常層次結(jié)構(gòu)
實(shí)例
<?php class MathOperations { protected $n = 10; // 求余數(shù)運(yùn)算,除數(shù)為 0,拋出異常 public function doOperation(): string { try { $value = $this->n % 0; return $value; } catch (DivisionByZeroError $e) { return $e->getMessage(); } } } $mathOperationsObj = new MathOperations(); print($mathOperationsObj->doOperation()); ?>
以上程序執(zhí)行輸出結(jié)果為:
Modulo by zero
以上是php7拋出異常的方法的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(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)容。