好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > 基于PHP7錯誤處理與異常處理方法(詳解)

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

熱門標簽:離石地圖標注 400電話申請方法收費 專業(yè)電話機器人批發(fā)商 400電話辦理福州市 長沙crm外呼系統(tǒng)業(yè)務(wù) 江蘇外呼電銷機器人報價 電話機器人危險嗎 深圳外呼系統(tǒng)收費 南寧高頻外呼回撥系統(tǒng)哪家好

PHP7錯誤處理

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

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

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

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

Throwable
 Error
  ArithmeticError
   DivisionByZeroError
  AssertionError
  ParseError
  TypeError
 Exception
  ...
try
{
 // Code that may throw an Exception or Error.
}
catch (Throwable $t)
{
 // Executed only in PHP 7, will not match in PHP 5
}
catch (Exception $e)
{
 // Executed only in PHP 5, will not be reached in PHP 7
}
up
down
9
lubaev dot ka at gmail dot com ¶
11 months ago
php 7.1
try {
 // Code that may throw an Exception or ArithmeticError.
} catch (ArithmeticError | Exception $e) {
 // pass
}

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

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

Example #1 內(nèi)置的異常處理類

?php
class Exception
{
 protected $message = 'Unknown exception'; // 異常信息
 private $string;       // __toString cache
 protected $code = 0;      // 用戶自定義異常代碼
 protected $file;       // 發(fā)生異常的文件名
 protected $line;       // 發(fā)生異常的代碼行號
 private $trace;       // backtrace
 private $previous;      // previous exception if nested exception
 public function __construct($message = null, $code = 0, Exception $previous = null);
 final private function __clone();   // Inhibits cloning of exceptions.
 final public function getMessage();  // 返回異常信息
 final public function getCode();   // 返回異常代碼
 final public function getFile();   // 返回發(fā)生異常的文件名
 final public function getLine();   // 返回發(fā)生異常的代碼行號
 final public function getTrace();   // backtrace() 數(shù)組
 final public function getPrevious();  // 之前的 exception
 final public function getTraceAsString(); // 已格成化成字符串的 getTrace() 信息
 // Overrideable
 public function __toString();    // 可輸出的字符串
}
?>
如果使用自定義的類來擴展內(nèi)置異常處理類,并且要重新定義構(gòu)造函數(shù)的話,建議同時調(diào)用 parent::__construct() 來檢查所有的變量是否已被賦值。當對象要輸出字符串的時候,可以重載 __toString() 并自定義輸出的樣式。
 Note:
 Exception 對象不能被復(fù)制。嘗試對 Exception 對象復(fù)制 會導(dǎo)致一個 E_ERROR 級別的錯誤。 
?php
/**
 * 自定義一個異常處理類
 */
class MyException extends Exception
{
 // 重定義構(gòu)造器使 message 變?yōu)楸仨毐恢付ǖ膶傩?
 public function __construct($message, $code = 0, Exception $previous = null) {
  // 自定義的代碼
  // 確保所有變量都被正確賦值
  parent::__construct($message, $code, $previous);
 }
 // 自定義字符串輸出的樣式
 public function __toString() {
  return __CLASS__ . ": [{$this->code}]: {$this->message}\n";
 }
 public function customFunction() {
  echo "A custom function for this type of exception\n";
 }
}

/**
 * 創(chuàng)建一個用于測試異常處理機制的類
 */
class TestException
{
 public $var;
 const THROW_NONE = 0;
 const THROW_CUSTOM = 1;
 const THROW_DEFAULT = 2;
 function __construct($avalue = self::THROW_NONE) {
  switch ($avalue) {
   case self::THROW_CUSTOM:
    // 拋出自定義異常
    throw new MyException('1 is an invalid parameter', 5);
    break;
   case self::THROW_DEFAULT:
    // 拋出默認的異常
    throw new Exception('2 is not allowed as a parameter', 6);
    break;
   default: 
    // 沒有異常的情況下,創(chuàng)建一個對象
    $this->var = $avalue;
    break;
  }
 }
}

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

您可能感興趣的文章:
  • 解決thinkphp5未定義變量會拋出異常,頁面錯誤,請稍后再試的問題
  • php異常處理捕獲錯誤整理
  • laravel 5異常錯誤:FatalErrorException in Handler.php line 38的解決
  • PHP中常見的錯誤與異常處理總結(jié)大全
  • php中的異常和錯誤淺析
  • 淺談PHP中的錯誤處理和異常處理
  • PHP錯誤和異常處理功能模塊示例
  • PHP中錯誤與異常的日志記錄用法分析
  • PHP中的錯誤及其處理機制

標簽:南昌 濱州 南京 曲靖 太原 白酒營銷 興安盟 株洲

巨人網(wǎng)絡(luò)通訊聲明:本文標題《基于PHP7錯誤處理與異常處理方法(詳解)》,本文關(guān)鍵詞  基于,PHP7,錯誤,處理,與,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《基于PHP7錯誤處理與異常處理方法(詳解)》相關(guān)的同類信息!
  • 本頁收集關(guān)于基于PHP7錯誤處理與異常處理方法(詳解)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: free性欧美嫩交| 日韩精品一区1A午夜久久久人人| 豪门大乱婬交| 中文字幕成人网| 日本r级无删减版电影| 亚洲日韩精产国品一二三产品测评| 含了一整夜滚烫浓精| 美女扒开内裤让男人桶爽原神| 女性被深耕后的表现| 高h爽文| 91老司机免费精品观看| 亚洲欧美日韩在线香蕉| 羞羞漫画?在线入口| 性生活一级黄色片| 欧美r级高清无删减在线观看| 日本三级456| 美女被?到爽??高潮草莓| 一二三四韩国无吗视频| 男女亲吻摸下面吃奶视频| 欧美乱妇狂野欧美在线电影免费 | 日本19禁啪啪无遮挡免费观看 | 乐播四季AV一二三四区免费播放| 99精品欧美| 2021国产精品成人免费视频| 搡老女人老妇老熟女50ⅩXXX| 国产日产欧产美漫画AV| 韩国一级婬片A片色戒| gogogo高清直播| 国内永久免费CRM系统破解版| 中文字幕麻豆| 羞羞视频免费入口网站| 丝瓜视频黄版| 乖宝宝我慢慢来不会疼的| 韩国男男激情videos高清| 国产年轻大学生情侣在线| cytherea喷水抽筋| 精产国品一二三产区99771| 欧美 亚洲 武侠 另类 动漫| 四个女大学体验精油按摩| 扒开美女?狂揉?孕动视频| 中国熟女内谢69XXXXX软件|