99re热这里只有精品视频,7777色鬼xxxx欧美色妇,国产成人精品一区二三区在线观看,内射爽无广熟女亚洲,精品人妻av一区二区三区

在PHP7中是如何進(jìn)行錯(cuò)誤處理的?

2018-10-31 17:14 更新

在 PHP7 中改變了大多數(shù)錯(cuò)誤的報(bào)告方式。不再通過(guò) PHP5 使用的傳統(tǒng)錯(cuò)誤報(bào)告機(jī)制來(lái)報(bào)告錯(cuò)誤,現(xiàn)在大多數(shù)錯(cuò)誤被作為 Error 異常拋出。這種 Error 異常可以像 Exception 異常一樣被第一個(gè)匹配的 try / catch 塊所捕獲。如果沒有匹配的 catch 塊,則調(diào)用異常處理函數(shù)(事先通過(guò) set_exception_handler() 注冊(cè))進(jìn)行處理。 如果尚未注冊(cè)異常處理函數(shù),則按照傳統(tǒng)方式處理:被報(bào)告為一個(gè)致命錯(cuò)誤(Fatal Error)。

由于錯(cuò)誤層次結(jié)構(gòu)不從 Exception 擴(kuò)展,因此使用 catch(Exception $ e){...} 塊處理 PHP5 中未捕獲的異常的代碼將不會(huì)處理此類錯(cuò)誤。需要一個(gè) catch(Error $ e){...} 塊或一個(gè) set_exception_handler()處理程序來(lái)處理致命錯(cuò)誤。

exception_hierarchy

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

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

使用示例

<?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
以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)