亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

PHP 7 錯誤處理

PHP 7 改變了大多數(shù)錯誤的報告方式。不同于 PHP 5 的傳統(tǒng)錯誤報告機制,現(xiàn)在大多數(shù)錯誤被作為 Error 異常拋出。

這種 Error 異??梢韵衿胀ó惓R粯颖?try / catch 塊所捕獲。如果沒有匹配的 try / catch 塊, 則調(diào)用異常處理函數(shù)(由 set_exception_handler() 注冊)進行處理。 如果尚未注冊異常處理函數(shù),則按照傳統(tǒng)方式處理:被報告為一個致命錯誤(Fatal Error)。

Error 類并不是從 Exception 類 擴展出來的,所以用 catch (Exception $e) { ... } 這樣的代碼是捕獲不 到 Error 的。你可以用 catch (Error $e) { ... } 這樣的代碼,或者通過注冊異常處理函數(shù)( set_exception_handler())來捕獲 Error。

Error 異常層次結(jié)構(gòu)

  • Error
    • ArithmeticError
    • AssertionError
    • DivisionByZeroError
    • ParseError
    • TypeError
  • Exception
    • ...

1458887252-2773-exception-hiearchy.jpg

實例

<?php 
class MathOperations  
{ 
   protected $n = 10; 

   // 求余數(shù)運算,除數(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
繼續(xù)學(xué)習(xí)
||
<?php class MathOperations { protected $n = 10; // 求余數(shù)運算,除數(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()); ?>
提交重置代碼