日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

前端學PHP之錯誤處理

瀏覽:152日期:2022-09-11 15:40:02
前面的話

錯誤處理對于程序開發至關重要,不能提前預測到可能發生的錯誤,不能提前采取恢復策略,可能導致較差的用戶體驗。本文將詳細介紹PHP的錯誤處理

[注意]關于javascript的錯誤處理機制移步至此

錯誤報告

PHP程序的錯誤發生一般歸屬于下列三個領域:

1、語法錯誤

語法錯誤最常見,并且也容易修復。如:代碼中遺漏一個分號。這類錯誤會阻止腳本的執行

2、運行時錯誤

這種錯誤一般不會阻止PHP腳本的執行,但會阻止當前要做的事情。輸出一條錯誤,但php腳本繼續執行

3、邏輯錯誤

這種錯誤最麻煩,既不阻止腳本執行,也不輸出錯誤消息

[注意]若將php.ini配置文件中的display_errors從默認的on設置為off,將不顯示任何錯誤

在PHP腳本中可調用ini_set()函數,動態設置php.ini配置文件

ini_set('display_errors','On'); //顯示所有錯誤信息

前端學PHP之錯誤處理

錯誤級別

前端學PHP之錯誤處理

實際上,表格中的13個錯誤類型可以分為3類:注意級別、警告級別和錯誤級別。一般地,在開發過程中,忽略注意級別的錯誤

<?php getType($a);//未定義變量,注意級別 echo '1111111111111111<br>'; getType();//未傳入參數,警告級別 echo '222222222222222222222<br>'; getType3();//函數名錯誤,錯誤級別 echo '333333333333333333333<br>';?>

前端學PHP之錯誤處理

錯誤處理

1、第一種錯誤處理方法是修改配置文件

前端學PHP之錯誤處理

錯誤級別默認為提示所有級別的錯誤:error_reporting = E_ALL

把error_reporting = E_ALL改為error_reporting = E_ALL & ~E_NOTICE 表示不提示注意級別的錯誤。然后,重啟服務生效

error_reporting = E_ALL & ~E_NOTICE 拋出任何非注意的錯誤,默認值error_reporting = E_ERROR | E_PARSE | E_CORE_ERROR 只考慮致命的運行時錯誤、新解析錯誤和核心錯誤error_reporting = E_ALL & ~(E_USER_ERROR | E_USER_WARNING | E_USER_NOTICE) 報告除用戶導致的錯誤之外的所有錯誤

2、第二種錯誤處理方法是使用錯誤處理函數

在PHP腳本可以通過error_reporting( )函數動態設置錯誤報告級別

<?php error_reporting(E_ALL & ~E_NOTICE); getType($a);//注意級別 echo '1111111111111111<br>'; getType();//警告級別 echo '222222222222222222222<br>'; getType3();//錯誤級別 echo '333333333333333333333<br>';?>

前端學PHP之錯誤處理

自定義錯誤處理

自定義錯誤報告的處理方式,可以完全繞過標準的PHP錯誤處理函數,這樣就可以按自己定義的格式打印錯誤報告,或改變錯誤報告打印的位置,以下幾種情況可以考慮自定義錯誤處理:1、記下錯誤的信息,及時發現一些生產環境出現的問題;2、屏蔽錯誤;3、控制錯誤的輸出; 4、作為調試工具

使用set_error_handler()函數來設置用戶自定義錯誤處理

<?php //error_reporting(E_ALL & ~E_NOTICE); //在php中注冊一個函數來處理錯誤報告,替代默認的方式 set_error_handler('myerrorfun'); $mess = ''; //自定義錯誤報告處理函數 function myerrorfun($error_type, $error_message, $error_file, $error_line) {global $mess;$mess.='發生錯誤級別為{$error_type}類型, 錯誤消息<b>{$error_message}</b>, 在文件<font style=’color:red’>{$error_file}</font>中, 第{$error_line}行。<br>';} getType($a); echo '1111111111111111<br>'; getType(); echo '222222222222222222222<br>'; echo '--------------------------------------------<br>'; echo $mess;?>

前端學PHP之錯誤處理

錯誤日志

一般地,程序都會保存錯誤日志,用來記錄程序運行時的錯誤信息。且錯誤日志都有其默認的存儲位置。對于錯誤信息和錯誤日志的位置,我們都可以進行修改

在PHP.ini配置文件中,有以下幾項可以對錯誤日志進行設置

error_reporting = E_ALL //將向PHP發送每個錯誤display_errors=Off //不顯示錯誤報告log_errors=On //決定日志語句記錄的位置log_errors_max_log=1024 //每個日志項的最大長度error_log=G:/myerror.log //指定錯誤寫進的文件

在php文件中,我們可以使用函數error_log()來自定義錯誤信息

<?phperror_log('登錄失敗了!');?>

前端學PHP之錯誤處理

異常處理

異常(Exception)處理用于在指定的錯誤發生時改變腳本的正常流程,是PHP5中的一個新的重要特性。異常處理是一種可擴展、易維護的錯誤處理機制,并提供了一種新的面向對象的錯誤處理方式

try{ 使用try去包含可能會發生異常的代碼 一旦出現異常try進行捕獲異常,交給catch處理。 拋出異常語句:throw 異常對象。}catch(異常對象參數){ 在這里做異常處理。}[catch(。,,){ .. .. ..}]

<?php try {$error = ’Always throw this error’;throw new Exception($error); //創建一個異常對象,通過throw語句拋出echo ’Never executed’; //從這里開始,try代碼塊內的代碼將不會再被執行 } catch (Exception $e) {echo ‘Caught exception: ’.$e->getMessage().'n'; //輸出捕獲的異常消息 } echo ’Hello World’; //程序沒有崩潰繼續向下執行?> 自定義異常

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

<?phpclass Exception{ protected $message = ’Unknown exception’; // 異常信息 private $string; // __toString cache protected $code = 0;// 用戶自定義異常代碼 protected $file; // 發生異常的文件名 protected $line; // 發生異常的代碼行號 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(); // 返回發生異常的文件名 final public function getLine(); // 返回發生異常的代碼行號 final public function getTrace(); // backtrace() 數組 final public function getPrevious(); // 之前的 exception final public function getTraceAsString(); // 已格成化成字符串的 getTrace() 信息 // Overrideable public function __toString(); // 可輸出的字符串}?>

[注意]如果使用自定義的類來擴展內置異常處理類,并且要重新定義構造函數的話,建議同時調用parent::__construct()來檢查所有的變量是否已被賦值。當對象要輸出字符串的時候,可以重載__toString() 并自定義輸出的樣式

<?php /* 自定義的一個異常處理類,但必須是擴展內異常處理類的子類 */ class MyException extends Exception{//重定義構造器使第一個參數 message 變為必須被指定的屬性public function __construct($message, $code=0){ //可以在這里定義一些自己的代碼 //建議同時調用 parent::construct()來檢查所有的變量是否已被賦值 parent::__construct($message, $code);} public function __toString() { //重寫父類方法,自定義字符串輸出的樣式 return __CLASS__.':['.$this->code.']:'.$this->message.'<br>';}public function customFunction() { //為這個異常自定義一個處理方法 echo '按自定義的方法處理出現的這個類型的異常<br>';} }?>

<?php try { //使用自定義的異常類捕獲一個異常,并處理異常$error = ’允許拋出這個錯誤’; throw new MyException($error); //創建一個自定義的異常類對象,通過throw語句拋出echo ’Never executed’; //從這里開始,try代碼塊內的代碼將不會再被執行 } catch (MyException $e) {//捕獲自定義的異常對象echo ’捕獲異常: ’.$e;//輸出捕獲的異常消息$e->customFunction(); //通過自定義的異常對象中的方法處理異常 } echo ’你好呀’; //程序沒有崩潰繼續向下執行?>

來自:http://www.cnblogs.com/xiaohuochai/p/6087997.html

標簽: PHP
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
丝袜美腿亚洲色图| 久久99精品久久久久久园产越南| 久久久久久亚洲精品美女| 亚洲三级网站| 青青草精品视频| 久久爱www成人| 日韩欧美一区免费| 欧美日韩少妇| 97久久精品| 国产一区二区三区不卡视频网站| 麻豆mv在线观看| 午夜欧美在线| 日韩一区二区三区精品视频第3页 日韩一区二区三区免费视频 | 里番精品3d一二三区| 黑森林国产精品av| 91精品久久久久久久久久不卡| 国产精品7m凸凹视频分类| 亚洲天堂日韩在线| 麻豆成人在线观看| 伊人成人在线视频| 国产乱码精品一区二区三区亚洲人| 91一区二区三区四区| 日韩一级精品| 免费一级欧美片在线观看网站| 日韩欧美1区| 一区二区高清| 97视频热人人精品免费| 一区在线视频观看| 欧美激情福利| 性欧美精品高清| 国产精品极品在线观看| 欧洲精品一区二区三区| 日韩三级精品| 日本美女一区| 日韩精品福利一区二区三区| 天堂√8在线中文| 欧美亚洲自偷自偷| 国内激情久久| 麻豆91精品视频| 三级在线观看一区二区| 成人国产综合| 日韩精品亚洲专区| 播放一区二区| 国产精品激情| 免费精品视频在线| 青青青免费在线视频| 中文视频一区| 亚洲成av在线| 牛牛精品成人免费视频| 中文精品电影| 国产在线日韩| 福利欧美精品在线| 国产精品中文| 亚洲乱码久久| 91久久国产| 日韩欧美一区二区三区在线视频| 国产毛片精品| 日韩毛片一区| 亚洲欧美不卡| 91精品国产调教在线观看| 国产精品黄色| 日韩av字幕| 亚洲开心激情| 亚洲一区网站| 狠狠色狠狠色综合日日tαg| 日本蜜桃在线观看视频| 久久99偷拍| 欧美自拍一区| 午夜性色一区二区三区免费视频| 91久久国产| 亚洲第一精品影视| 韩国精品主播一区二区在线观看| 精品精品久久| 精品日本视频| 精品国产乱码久久久| 日本高清久久| 亚洲资源网站| 日韩中文字幕不卡| 亚洲欧美日韩国产一区| 欧美二区视频| 亚洲精品一二三区区别| 播放一区二区| 91精品一区国产高清在线gif| 国产精品99在线观看| 久久久精品国产**网站| 欧美激情 亚洲a∨综合| 国产精品一区二区三区www| 日韩高清二区| 日本精品另类| 国产日韩三级| 国产视频一区二| 国产精品视频首页| 欧美交a欧美精品喷水| 久久免费福利| 亚洲精品成人图区| 久久电影tv| 性欧美videohd高精| 私拍精品福利视频在线一区| 日本免费一区二区三区四区| 快播电影网址老女人久久| 欧美日韩精品免费观看视欧美高清免费大片| 成人国产精品一区二区网站| 日韩久久精品网| 91成人网在线观看| 蜜臀久久99精品久久久画质超高清| 夜夜嗨网站十八久久 | 精品久久99| 欧美日韩视频免费观看| 欧美~级网站不卡| 蜜乳av另类精品一区二区| 蜜桃久久av一区| 久久精品99久久久| 国产一区二区三区探花| 成人久久一区| 亚洲欧美日本日韩| 日韩av影院| 国产一区二区三区天码| 亚洲福利一区| 免费日韩精品中文字幕视频在线| 亚洲天堂日韩在线| 国产欧美丝祙| 欧美成a人国产精品高清乱码在线观看片在线观看久 | 日韩一区中文| 老司机免费视频一区二区| 国产精品久久久久av电视剧| 国产精品日本欧美一区二区三区| 亚洲影院天堂中文av色| 国产精品v一区二区三区| 国产在线观看91一区二区三区 | 在线看片国产福利你懂的| 狠狠久久婷婷| 免费一区二区三区在线视频| 久久激情一区| 亚洲美女久久| 国产高清不卡| 日本在线视频一区二区| av在线最新| 日本aⅴ亚洲精品中文乱码| 日韩电影免费在线观看| 亚洲一区二区免费看| 久久av影视| 日韩中文字幕不卡| 高清一区二区| 日韩欧美中文字幕一区二区三区 | 国产剧情在线观看一区| 91亚洲国产成人久久精品| 先锋影音国产一区| 久久亚洲资源中文字| 日韩午夜av在线| 精品理论电影在线| 免费日本视频一区| 久久男人av资源站| 日本v片在线高清不卡在线观看| 四虎4545www国产精品| 日韩av影院| 免费成人网www| 麻豆一区二区99久久久久| 日韩专区一卡二卡| 99久精品视频在线观看视频| 18国产精品| 久久精选视频| 蜜桃久久久久| 亚洲一区二区三区四区电影| 亚洲天堂1区| 国产日韩一区二区三区在线播放| 在线亚洲欧美| 另类中文字幕国产精品| 国产福利资源一区| 中文精品电影| 欧美~级网站不卡| 国产精品xx| 国产调教精品| 日韩有吗在线观看| 美女精品在线| 国产综合视频| 国产a亚洲精品| 久久国产日韩欧美精品| 美女精品网站| 影院欧美亚洲| 在线日韩中文| 日韩精品免费一区二区在线观看| 精品国产亚洲日本| 美女国产一区二区三区| 欧美一区二区三区久久精品| 日韩中文字幕一区二区三区| 视频一区中文| 亚洲婷婷在线| 999久久久免费精品国产| 国产成人免费| 欧美黄色一区| 国产亚洲一区二区三区啪| 综合在线一区| 亚洲一区二区小说| 国产精品日本| 日韩视频二区| 亚洲女同一区| 黄色成人在线网址| 在线亚洲国产精品网站| 国产一级一区二区| 男女性色大片免费观看一区二区|