最近學習了下PHP7新特性教程,記錄了一些學習筆記。php
PHP 7 改變了大多數錯誤的報告方式。不一樣於 PHP 5 的傳統錯誤報告機制,如今大多數錯誤被做爲 Error 異常拋出。html
這種 Error 異常能夠像普通異常同樣被 try / catch 塊所捕獲。若是沒有匹配的 try / catch 塊, 則調用異常處理函數(由 set_exception_handler() 註冊)進行處理。 若是還沒有註冊異常處理函數,則按照傳統方式處理:被報告爲一個致命錯誤(Fatal Error)。函數
Error 類並非從 Exception 類 擴展出來的,因此用 catch (Exception $e) { … } 這樣的代碼是捕獲不 到 Error 的。你能夠用try{} catch (Error $e) { … } 這樣的代碼,或者經過註冊異常處理函數( set_exception_handler())來捕獲 Error。學習
Error 異常層次結構this
Error
ArithmeticError
AssertionError
DivisionByZeroError
ParseError
TypeError
Exception
...
實例spa
<?php class MathOperations { protected $n = 10; // 求餘數運算,除數爲 0,拋出異常 public function doOperation(): string { try { $value = $this->n % 0; return $value; } catch (DivisionByZeroError $e) { return $e->getMessage(); } } } $mathOperationsObj = new MathOperations(); print($mathOperationsObj->doOperation()); ?>
以上程序執行輸出結果爲:
Modulo by zerocode
轉載自技術拉近你我,原文地址:http://coderschool.cn/1749.htmlhtm