91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么在php中實現錯誤處理

發布時間:2021-05-26 12:44:57 來源:億速云 閱讀:113 作者:Leah 欄目:開發技術

怎么在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中實現錯誤處理

  • 在當前的腳本代碼中設置

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();
}

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

php
AI

石城县| 图们市| 伊川县| 姜堰市| 商河县| 镇江市| 庆城县| 罗源县| 金华市| 萨迦县| 大埔县| 昌黎县| 丹巴县| 吴桥县| 瓮安县| 确山县| 社旗县| 曲松县| 鱼台县| 冷水江市| 林西县| 河源市| 拜城县| 二连浩特市| 崇左市| 冷水江市| 长寿区| 商洛市| 正安县| 高雄县| 青海省| 上栗县| 磐安县| 专栏| 丘北县| 江孜县| 柘荣县| 台南市| 和田市| 曲水县| 浙江省|