本篇文章主要介紹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中執行完成,再繼續向下執行
<?phptry{ 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>";?>
以上就是本文的全部內容,希望對大家的學習有所協助。