中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

PHP如何使用錯誤和異常處理功能模塊

發布時間:2021-08-27 11:30:26 來源:億速云 閱讀:125 作者:小新 欄目:開發技術

這篇文章主要介紹PHP如何使用錯誤和異常處理功能模塊,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

具體如下:

一、錯誤類型和基本的調試方法

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

語法錯誤:

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

運行時錯誤:

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

邏輯錯誤:

這種錯誤最麻煩,既不阻止腳本執行,也不輸出錯誤消息。
一個異常則是在一個程序執行過程中出現的一個例外,或是一個事件,它中斷了正常指令的運行,跳轉到其他程序模塊繼續執行。

PHP的錯誤報告級別

E_ALL //所有信息值:6143
E_ERROR//致命的運行時錯誤值:1
E_RECOVERABLE_ERROR //接近致命的運行時錯誤,若未被捕獲則視同E_ERROR 值:4096
E_WARNING //運行時警告(非致命性錯誤) 值:2
E_PARSE//編譯時解析錯誤值:4
E_NOTICE //運行時提醒(經常是bug,也可能是有意的) 值:8
E_STRICT//編碼標準化警告(建議如何修改以向前兼容) 值:2048
E_CORE_ERROR //PHP啟動時初始化過程中的致命錯誤值:16
E_CORE_WARNING //PHP啟動時初始化過程中的警告(非致命性錯)值:32
E_COMPILE_ERROR //編譯時致命性錯值:64
E_COMPILE_WARNING //編譯時警告(非致命性錯) 值:128
E_USER_ERROR //用戶自定義的致命錯誤值:256
E_USER_WARNING //用戶自定義的警告(非致命性錯誤) 值:512
E_USER_NOTICE //用戶自定義的提醒(經常是bug) 值:1024

php.ini配置文件

display_errors: 是否開啟PHP輸出錯誤報告的功能
值為:On(默認輸出錯誤報告)、Off(屏蔽所有錯誤信息)
在PHP腳本中可調用ini_set( )函數,動態設置php.ini配置文件.
如:ini_set("display_errors","On"); //顯示所有錯誤信息
error_reporting: 設置不同的錯誤報告級別。
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)
--報告除用戶導致的錯誤之外的所有錯誤。
在PHP腳本可以通過error_reporting( )函數動態設置錯誤報告級別。如:error_reporting(E_ALL);]

設置錯誤級別實例:error.php

<h3>測試錯誤報告</h3>
<?php
/*開啟php.ini中的display_errors指令,只有該指令開啟如有錯誤報告才能輸出*/
ini_set('display_errors',1);
/*通過error_reporting()函數設置在本腳本中,輸出所有級別的錯誤報告*/
error_reporting(E_ALL);
/*“注意(notice)”的報告,不會阻止腳本的執行,并且不一定是一個問題*/
getType($var);//調用函數時提供的參數變量沒有在之前聲明
/*“警告(warning)”的報告,指示一個問題,但是不會阻止腳本的執行*/
getType();//調用函數時沒有提供必要的參數
/*“錯誤(error)”的報告,它會終止程序,腳本不會再向下執行*/
get_Type();//調用一個沒有被定義的函數
?>

PHP錯誤報告行為的配置指令

display_startup_errors= Off
是否顯示PHP引擎在初始化時遇到的錯誤。
log_errors= On
決定日志語句記錄的位置。
error_log(默認null)
指定錯誤寫進的文件或記錄錯誤日志于系統日志syslog。
Log_errors_max_len=1024
每個日志項的最大長度,單位是字節。0表示最大。

二、錯誤日志

兩種方式記錄錯誤日志:

使用指定的文件記錄錯誤報告日志
錯誤日志記錄到操作系統的日志里

使用指定的文件記錄錯誤報告日志

1、先配置php.ini:

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

2、使用函數:在php文件中使用error_log()來記錄日志,就可以將信息寫入到myerror.log文件中

如:

error_log("登錄失敗了!");

3、使用四個函數來記錄日志:

define_syslog_variables();//為系統日志初始化配置
openlog();//打開一個日志鏈接
syslog();//發送一條日志

例子

<?php
if(!Ora_Logon($username, $password)){
error_log("Oracle數據庫不可用!", 0);
//將錯誤消息寫入到操作系統日志中
}
if(!($foo=allocate_new_foo()){
error_log("出現大麻煩了!", 1, "webmaster@www.mydomain.com"); //發送到管理員郵箱中
}
error_log("搞砸了!",2, "localhost:5000");
//發送到本機對應5000端口的服務器中
error_log("搞砸了!", 3, "/usr/local/errors.log");
//發送到指定的文件中
?>
<?php
define_syslog_variables();
openlog("PHP5", LOG_PID , LOG_USER);
syslog(LOG_WARNING, "警告報告向syslog中發送的演示,警告時間:".date("Y/m/dH:i:s"));
closelog();
?>

查看日志:如windows系統,通過右擊“我的電腦”-> 選擇管理選項->在系統工具菜單中選擇事件查看器->在應用程序選項中即可看到日志了

三、異常處理

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

異常處理格式:

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

以上是“PHP如何使用錯誤和異常處理功能模塊”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

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

php
AI

余姚市| 开鲁县| 甘谷县| 双峰县| 河北区| 衡水市| 岑溪市| 云阳县| 兴安县| 乐昌市| 平度市| 定襄县| 历史| 迭部县| 镇安县| 盐津县| 绥江县| 通许县| 台中市| 宿州市| 宁河县| 永泰县| 渝北区| 杂多县| 锦州市| 黄冈市| 沙坪坝区| 马公市| 科技| 辽阳市| 台州市| 桦甸市| 峨山| 滦南县| 贵州省| 白河县| 宝鸡市| 两当县| 远安县| 昌图县| 区。|