PHP7 錯誤處理

最近學習了下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

相關文章
相關標籤/搜索