PHP中是如何對錯誤與異常進行處理的?針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
錯誤處理:
1. 語法錯誤
2. 運行時的錯誤
3. 邏輯錯誤
錯誤報告:
錯誤E_ERROR
警告E_WARNING
注意E_NOTICE
開發階段:開發時輸出所有的錯誤報告,有利于我們進行調試
運行階段:不要讓程序輸出任何一種錯誤報告
將錯誤報告寫入日志中
一. 指定錯誤報告error_reporting=E_ALL(在php.inn)
二. 關閉錯誤輸出display_errors=off(在php.ini中)
三. 開啟錯誤日志的功能log_errors=on(在php.ini中)
1. 默認如果不指定錯誤日志位置,則默認寫入web服務器的日志中
2. 為error_log選項指定一個文件名,這個文件名就是錯誤日志
3. 寫入到操作系統日志中error_log=syslog
<?php
//注意和警告都不會終止程序的運行,但是錯誤會終止程序的運行
/*
錯誤E_ERROR
警告E_WARNING
注意E_NOTICE
*/
//所有的錯誤都輸出除了注意
error_reporting(E_ALL & ~E_NOTICE);
//設置配置文件的值(臨時)
//ini_set("upload_max_filesize", 2000000000);
//得到配置文件的值
//ini_get("upload_max_filesize");
//關閉錯誤報告的顯示,一般在運行階段使用
ini_set("display_errors", "off");
//將錯誤報告寫入日志中
ini_set("log_errors", "on");
//日志的目錄
ini_set("error_log", "D:/error.log");
gettype($var); //注意
gettype(); //警告
//getype(); //錯誤,程序終止
echo "############<br>";
?>異常處理:意外,是在程序運行過程中發生的意料之外的事,使用異常改變腳本正常流程
PHP5中的一個新的重要特性
try{
}catch(異常對象){
}
1. 如果try中代碼沒有問題,則將try中代碼執行完成后就到catch后執行
2. 如果try中代碼有異常發生,則拋出一個異常對象(使用throw),拋出給了catch中的參數,則在try中出現異常代碼后的內容就不會執行,直接跳轉到catch中去執行,catch中執行完成,再繼續向下執行
<?php
try{
echo "11111111<br>";
$file=@fopen("./hello.txt","r");
if(!$file){
throw new Exception("文件打開失敗");
}
echo "2222222222<br>";
}catch(Exception $e){
echo "3333333<br>";
echo $e->getMessage()."<br>";
touch("hello.txt");
$file=@fopen("./hello.txt","r");
}
echo "4444444<br>";
?>關于PHP中是如何對錯誤與異常進行處理的問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。