W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
在 PHP7 中改變了大多數(shù)錯誤的報告方式。不再通過 PHP5 使用的傳統(tǒng)錯誤報告機(jī)制來報告錯誤,現(xiàn)在大多數(shù)錯誤被作為 Error 異常拋出。這種 Error 異??梢韵?nbsp;Exception 異常一樣被第一個匹配的 try / catch 塊所捕獲。如果沒有匹配的 catch 塊,則調(diào)用異常處理函數(shù)(事先通過 set_exception_handler() 注冊)進(jìn)行處理。 如果尚未注冊異常處理函數(shù),則按照傳統(tǒng)方式處理:被報告為一個致命錯誤(Fatal Error)。
由于錯誤層次結(jié)構(gòu)不從 Exception 擴(kuò)展,因此使用 catch(Exception $ e){...} 塊處理 PHP5 中未捕獲的異常的代碼將不會處理此類錯誤。需要一個 catch(Error $ e){...} 塊或一個 set_exception_handler()處理程序來處理致命錯誤。
<?php
class MathOperations {
protected $n = 10;
// Try to get the Division by Zero error object and display as Exception
public function doOperation(): string {
try {
$value = $this->n % 0;
return $value;
} catch (DivisionByZeroError $e) {
return $e->getMessage();
}
}
}
$mathOperationsObj = new MathOperations();
print($mathOperationsObj->doOperation());
?>
它產(chǎn)生以下瀏覽器輸出:
Modulo by zero
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: