主頁 > 知識庫 > php中錯誤處理操作實例分析

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

熱門標簽:銀行業(yè)務(wù) Mysql連接數(shù)設(shè)置 Linux服務(wù)器 電子圍欄 服務(wù)器配置 阿里云 科大訊飛語音識別系統(tǒng) 團購網(wǎng)站

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

錯誤觸發(fā)

有2種觸發(fā):

系統(tǒng)觸發(fā): E_NOTICE:提示性錯誤,比如使用不存在的變量或常量
E_WARNING:警告性錯誤,比如include載入一個不存在的文件
E_ERROR:致命錯誤,導(dǎo)致程序無法執(zhí)行后續(xù)語句,比如調(diào)用一個不存在的函數(shù)

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

錯誤顯示

是否顯示錯誤報告(display_errors)

有2種來設(shè)定是否顯示:

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

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

  • 在當前的腳本代碼中設(shè)置
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配置項",值);//用于腳本中設(shè)置php.ini中某項的值
$v=ini_get("php配置項");//用于獲取php.ini中某項的值

記錄到哪里error_log

一般就只有2個寫法:

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

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

ini_set("error_log","syslog");//記錄到系統(tǒng)日志中

自定義錯誤處理器

讓系統(tǒng)不要去處理錯誤了,完全由開發(fā)者對錯誤進行處理:顯示和記錄

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

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

例:

set_error_handler("my_error_handler");
//定義該函數(shù),需要定義4個形參分別代表$errCode:代表錯誤代號(級別) $errMsg:代表錯誤//信息內(nèi)容 $errFile:代表錯誤的文件名 $errLine:代表錯誤的行號,一旦發(fā)生錯誤自動調(diào)用
function my_error_handler($errCode,$errMsg,$errFile,$errLine) {
  $str="";
  $str .="p>font color='red'>大事不好,發(fā)生錯誤:/font>";
  $str .="br />錯誤代號為:".$errCode;
  $str .="br />錯誤內(nèi)容為:".$errMsg;
  $str .="br />錯誤代號為:".$errFile;
  $str .="br />錯誤代號為:".$errLine;
  $str .="br />發(fā)生時間為:".date("Y-d-m H:i:s");
  $str .="/p>";
  echo $str; //輸出該構(gòu)建完整的錯誤處理結(jié)果,也可以將改內(nèi)容寫到某個文件中去
}

異常拋出

function checkAge($age){
  if($age>100) throw new Exception('年齡不能大于100');
  echo '年齡符合規(guī)范';
}
//如果年齡大于100,拋出異常
try{
  checkAge(200);
}catch(Exception $e){
  echo $e->getMessage();
}

更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《PHP錯誤與異常處理方法總結(jié)》、《php字符串(string)用法總結(jié)》、《PHP數(shù)組(Array)操作技巧大全》、《PHP基本語法入門教程》、《php面向?qū)ο蟪绦蛟O(shè)計入門教程》、《php+mysql數(shù)據(jù)庫操作入門教程》及《php常見數(shù)據(jù)庫操作技巧匯總》

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

您可能感興趣的文章:
  • PHP中PDO的錯誤處理
  • PHP中的錯誤處理、異常處理機制分析
  • php一些錯誤處理的方法與技巧總結(jié)
  • PHP 自定義錯誤處理函數(shù)trigger_error()
  • PHP 自定義錯誤處理函數(shù)的使用詳解
  • PHP錯誤處理函數(shù)
  • PHP 錯誤處理機制
  • 基于PHP7錯誤處理與異常處理方法(詳解)
  • 淺談PHP中的錯誤處理和異常處理
  • 使用PHP的錯誤處理
  • php自定義錯誤處理用法實例

標簽:江蘇 棗莊 衡水 衢州 萍鄉(xiāng) 蚌埠 廣元 大理

巨人網(wǎng)絡(luò)通訊聲明:本文標題《php中錯誤處理操作實例分析》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266