一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

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

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

服務器之家 - 編程語言 - PHP教程 - php中錯誤處理操作實例分析

php中錯誤處理操作實例分析

2021-08-15 20:41cscsdvdsv PHP教程

這篇文章主要介紹了php中錯誤處理操作,結合實例形式分析了php錯誤的觸發、處理、日志記錄等相關操作技巧,需要的朋友可以參考下

本文實例講述了php中錯誤處理操作。分享給大家供大家參考,具體如下:

錯誤觸發

有2種觸發:

系統觸發: e_notice:提示性錯誤,比如使用不存在的變量或常量
e_warning:警告性錯誤,比如include載入一個不存在的文件
e_error:致命錯誤,導致程序無法執行后續語句,比如調用一個不存在的函數

自定義觸發:
語法形式:trigger_error("錯誤提示信息內容",3種用戶錯誤代號之一);
其中觸發了用戶的致命錯誤(e_user_error),也會終止程序的后續執行

錯誤顯示

是否顯示錯誤報告(display_errors)

有2種來設定是否顯示:

1.在php.ini文件中,設定display_erros的值,為on(顯示),或為off(不顯示),開發階段應該為on,顯示錯誤信息

2.直接在php腳本文件中設定ini_set("display_errors",0);//不顯示錯誤報告,1為顯示
顯示哪些級別的錯誤報告(error_reporting)
前提是"display_errors"設置為on(或1),表示可以顯示
1.在php.ini文件中 error_reporting=e_all | e_strict這個值代表所有錯誤

php中錯誤處理操作實例分析

php中錯誤處理操作實例分析

  • 在當前的腳本代碼中設置
?
1
2
3
4
5
6
7
8
ini_set("error_reporting",e_notice); //就顯示該一個級別的錯誤
ini_set("error_reporting",e_notice| e_warning); //顯示該2個級別的錯誤
//禁用錯誤報告
error_reporting(0);
//報告運行時錯誤
error_reporting(e_error | e_warning | e_parse);
//報告所有錯誤
error_reporting(e_all);

錯誤日志記錄

錯誤日志其實就是錯誤報告,只是會寫入文件中,此時就稱為錯誤日志

是否記錄log_errors

php.ini中:log_errors=on或off 腳本中:ini_set("log_erros",1);或0
補充: ini_set("php配置項",值);//用于腳本中設置php.ini中某項的值
$v=ini_get("php配置項");//用于獲取php.ini中某項的值

記錄到哪里error_log

一般就只有2個寫法:

1.直接寫一個文件名,系統會自動在每個文件夾下都建立該文件名,并用其記錄該文件夾下的所有網頁文件發生的錯誤信息ini_set("error_log","my_error.txt");//記錄到該文件

2.使用一個特殊的名字"syslog",則所有的錯誤信息都會記錄到系統的"日志文件中".系統日志文件在這里:控制面板》管理工具》事件查看器》window日志》應用程序:

?
1
ini_set("error_log","syslog");//記錄到系統日志中

自定義錯誤處理器

讓系統不要去處理錯誤了,完全由開發者對錯誤進行處理:顯示和記錄

第一步:設定要用于處理錯誤的函數名:set_error_handler("f1");

第二步:去定義該函數function f1() {這里可以寫任意代碼,正常去顯示錯誤報告,和記錄}

例:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
set_error_handler("my_error_handler");
//定義該函數,需要定義4個形參分別代表$errcode:代表錯誤代號(級別) $errmsg:代表錯誤//信息內容 $errfile:代表錯誤的文件名 $errline:代表錯誤的行號,一旦發生錯誤自動調用
function my_error_handler($errcode,$errmsg,$errfile,$errline) {
  $str="";
  $str .="<p><font color='red'>大事不好,發生錯誤:</font>";
  $str .="<br />錯誤代號為:".$errcode;
  $str .="<br />錯誤內容為:".$errmsg;
  $str .="<br />錯誤代號為:".$errfile;
  $str .="<br />錯誤代號為:".$errline;
  $str .="<br />發生時間為:".date("y-d-m h:i:s");
  $str .="</p>";
  echo $str; //輸出該構建完整的錯誤處理結果,也可以將改內容寫到某個文件中去
}

異常拋出

?
1
2
3
4
5
6
7
8
9
10
function checkage($age){
  if($age>100) throw new exception('年齡不能大于100');
  echo '年齡符合規范';
}
//如果年齡大于100,拋出異常
try{
  checkage(200);
}catch(exception $e){
  echo $e->getmessage();
}

希望本文所述對大家PHP程序設計有所幫助。

原文鏈接:https://blog.csdn.net/xiajiandong1024/article/details/71106076

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 蜜桃免费 | 爱情岛永久成人免费网站 | 国产精品美女久久久久 | 鬼惨笑小说 | chinesezoozvideos| 四虎色影院 | 久久中文骚妇内射 | 大又大又黄又爽免费毛片 | 图片亚洲va欧美va国产综合 | 男人狂躁女人gif动态图 | 美女视频在线观看视频 | 亚洲国产精品综合久久一线 | 欧美日韩成人在线 | 99rv精品视频在线播放 | 国产福利视频一区二区微拍 | www射com| 精品一区二区三区在线播放 | 青青草国产免费久久久91 | 超级乱淫 不详 | 福利视频一区二区思瑞 | 国产人妖ts在线视频网 | 公交车强校花系列小说 | 日日碰日日操 | 插入肥臀 | 美女用手扒开粉嫩的屁股 | 亚洲欧美久久婷婷爱综合一区天堂 | 亚洲26uuuu最新地址 | 成年人视频免费在线播放 | 香蕉免费一区二区三区在线观看 | 色多多在线观看视频 | 草莓茄子丝瓜番茄小蝌蚪 | pregnanthd产子| 久久久久久免费观看 | 99热精品在线观看 | 果冻传媒和91制片厂网站软件 | 亚洲国产中文字幕在线视频综合 | 果冻传媒在线视频观看免费 | 日韩视频一 | 国产高清视频在线 | 国产精品女同久久免费观看 | 国产另类视频 |