国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - PHP教程 - 基于PHP7錯誤處理與異常處理方法(詳解)

基于PHP7錯誤處理與異常處理方法(詳解)

2019-10-26 15:43D_G_H PHP教程

下面小編就為大家分享一篇基于PHP7錯誤處理與異常處理方法(詳解),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

PHP7錯誤處理

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

這種 Error 異常可以像 Exception 異常一樣被第一個匹配的 try / catch 塊所捕獲。如果沒有匹配的 catch 塊,則調用異常處理函數(事先通過 set_exception_handler() 注冊)進行處理。 如果尚未注冊異常處理函數,則按照傳統方式處理:被報告為一個致命錯誤(Fatal Error)。

Error 類并非繼承自 Exception 類,所以不能用 catch (Exception e)...來捕獲Error。你可以用catch(Errore) { … },或者通過注冊異常處理函數( set_exception_handler())來捕獲 Error。

Error 層次結構
  1. Throwable 
  2. Error 
  3.   ArithmeticError 
  4.    DivisionByZeroError 
  5.   AssertionError 
  6.   ParseError 
  7.   TypeError 
  8. Exception 
  9.   ... 


 

  1. try 
  2. // Code that may throw an Exception or Error. 
  3. catch (Throwable $t) 
  4. // Executed only in PHP 7, will not match in PHP 5 
  5. catch (Exception $e) 
  6. // Executed only in PHP 5, will not be reached in PHP 7 
  7. up 
  8. down 
  9. lubaev dot ka at gmail dot com ¶ 
  10. 11 months ago 
  11. php 7.1 
  12. try { 
  13. // Code that may throw an Exception or ArithmeticError. 
  14. catch (ArithmeticError | Exception $e) { 
  15. // pass 



擴展(extend) PHP內置的異常處理類

用戶可以用自定義的異常處理類來擴展PHP內置的異常處理類。以下的代碼說明了在內置的異常處理類中,哪些屬性和方法在子類中是可訪問和繼承的。

Example #1 內置的異常處理類

  1. <?php 
  2. class Exception 
  3. protected $message = 'Unknown exception'// 異常信息 
  4. private $string;       // __toString cache 
  5. protected $code = 0;      // 用戶自定義異常代碼 
  6. protected $file;       // 發生異常的文件名 
  7. protected $line;       // 發生異常的代碼行號 
  8. private $trace;       // backtrace 
  9. private $previous;      // previous exception if nested exception 
  10. public function __construct($message = null, $code = 0, Exception $previous = null); 
  11. final private function __clone();   // Inhibits cloning of exceptions. 
  12. final public function getMessage();  // 返回異常信息 
  13. final public function getCode();   // 返回異常代碼 
  14. final public function getFile();   // 返回發生異常的文件名 
  15. final public function getLine();   // 返回發生異常的代碼行號 
  16. final public function getTrace();   // backtrace() 數組 
  17. final public function getPrevious();  // 之前的 exception 
  18. final public function getTraceAsString(); // 已格成化成字符串的 getTrace() 信息 
  19. // Overrideable 
  20. public function __toString();    // 可輸出的字符串 
  21. ?> 


如果使用自定義的類來擴展內置異常處理類,并且要重新定義構造函數的話,建議同時調用 parent::__construct() 來檢查所有的變量是否已被賦值。當對象要輸出字符串的時候,可以重載 __toString() 并自定義輸出的樣式。
Note:
Exception 對象不能被復制。嘗試對 Exception 對象復制 會導致一個 E_ERROR 級別的錯誤。
  1. <?php 
  2. /** 
  3. * 自定義一個異常處理類 
  4. */ 
  5. class MyException extends Exception 
  6. // 重定義構造器使 message 變為必須被指定的屬性 
  7. public function __construct($message, $code = 0, Exception $previous = null) { 
  8.   // 自定義的代碼 
  9.   // 確保所有變量都被正確賦值 
  10.   parent::__construct($message, $code, $previous); 
  11. // 自定義字符串輸出的樣式 
  12. public function __toString() { 
  13.   return __CLASS__ . ": [{$this->code}]: {$this->message}\n"
  14. public function customFunction() { 
  15.   echo "A custom function for this type of exception\n"
  16.  
  17. /** 
  18. * 創建一個用于測試異常處理機制的類 
  19. */ 
  20. class TestException 
  21. public $var
  22. const THROW_NONE = 0; 
  23. const THROW_CUSTOM = 1; 
  24. const THROW_DEFAULT = 2; 
  25. function __construct($avalue = self::THROW_NONE) { 
  26.   switch ($avalue) { 
  27.    case self::THROW_CUSTOM: 
  28.     // 拋出自定義異常 
  29.     throw new MyException('1 is an invalid parameter', 5); 
  30.     break
  31.    case self::THROW_DEFAULT: 
  32.     // 拋出默認的異常 
  33.     throw new Exception('2 is not allowed as a parameter', 6); 
  34.     break
  35.    default
  36.     // 沒有異常的情況下,創建一個對象 
  37.     $this->var = $avalue; 
  38.     break
  39.   } 


以上這篇基于PHP7錯誤處理與異常處理方法(詳解)就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持服務器之家。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 久久久久亚洲 | 国内外成人在线视频 | 国产不卡一区 | 日本精品一区二区三区在线观看视频 | 四影虎影www4hu23cmo | 国产精品成人在线观看 | 在线观看亚洲 | 天堂在线免费视频 | 久久久91精品国产一区二区三区 | 视频三区 | 久久91av| 日韩久久久久久 | 天天干天天爽 | 国产精品成人3p一区二区三区 | 国产成人高清精品免费5388 | 欧美久久久久 | 亚洲国产精品一区 | 日韩中文字幕无码一区二区三区 | 亚洲成人av在线播放 | 国产在线观看一区二区三区 | 国产精品久久久久久久久久免费动 | 中文在线中文a | 精品天堂| 午夜伦理电影 | 国产综合人综合 | 91黄色片视频 | 在线视频se | 日韩成人片 | 成人1区2区 | 午夜午夜精品一区二区三区文 | 久久99国产精品久久99果冻传媒 | 成人精品一区二区 | 久久精品免费 | 日产欧产va高清 | 7799精品天天综合网 | 日本一区二区三区四区 | 蜜桃av一区| 含羞草www国产在线视频 | 午夜精品在线观看 | 青草福利 | 中文字幕欧美日韩 |