本文實例講述了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
這個值代表所有錯誤


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日志》應用程序:
ini_set("error_log","syslog");//記錄到系統日志中
自定義錯誤處理器
讓系統不要去處理錯誤了,完全由開發者對錯誤進行處理:顯示和記錄
第一步:設定要用于處理錯誤的函數名:set_error_handler("f1");
第二步:去定義該函數function f1() {這里可以寫任意代碼,正常去顯示錯誤報告,和記錄}
例:
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; //輸出該構建完整的錯誤處理結果,也可以將改內容寫到某個文件中去
}
異常拋出
function checkAge($age){
if($age>100) throw new Exception('年齡不能大于100');
echo '年齡符合規范';
}
//如果年齡大于100,拋出異常
try{
checkAge(200);
}catch(Exception $e){
echo $e->getMessage();
}
更多關于PHP相關內容感興趣的讀者可查看本站專題:《PHP錯誤與異常處理方法總結》、《php字符串(string)用法總結》、《PHP數組(Array)操作技巧大全》、《PHP基本語法入門教程》、《php面向對象程序設計入門教程》、《php+mysql數據庫操作入門教程》及《php常見數據庫操作技巧匯總》
希望本文所述對大家PHP程序設計有所幫助。
您可能感興趣的文章:- PHP中PDO的錯誤處理
- PHP中的錯誤處理、異常處理機制分析
- php一些錯誤處理的方法與技巧總結
- PHP 自定義錯誤處理函數trigger_error()
- PHP 自定義錯誤處理函數的使用詳解
- PHP錯誤處理函數
- PHP 錯誤處理機制
- 基于PHP7錯誤處理與異常處理方法(詳解)
- 淺談PHP中的錯誤處理和異常處理
- 使用PHP的錯誤處理
- php自定義錯誤處理用法實例