php錯誤與異常處理方法
php與其他計算機程式語言在遇到錯誤就丟擲異常不太一樣,PHP在處理物件時它也有異常機制,但是PHP會盡可能的愉快的去執行而無視發生的事情,除非遇到一個極端嚴重錯誤才會丟擲異常。本文主要給大家分享PHP相關的錯誤異常處理機制。
錯誤等級
PHP 有幾個錯誤嚴重性等級。三個最常見的的資訊型別是錯誤(error)、通知(notice)和警告(warning)。它們有不同的嚴重性: E_ERROR 、E_NOTICE和 E_WARNING。錯誤是執行期間的嚴重問題,通常是因為程式碼出錯而造成,必須要修正它,否則會使 PHP 停止執行。通知是建議性質的資訊,是因為程式程式碼在執行期有可能造成問題,但程式不會停止。 警告是非致命錯誤,程式執行也不會因此而中止。
使用 PHP 內建的函式 error_reporting(),可以設定程式執行期間的錯誤等級,方法是傳入預定義的錯誤等級常量,這意味著如果你只想看到警告和錯誤 - 而非通知 - 你可以這樣設定:
error_reporting(E_ERROR | E_WARNING);
你可以讓 PHP 利用錯誤控制運算子 @ 來抑制特定的錯誤, 如@fopen()。將這個運算子放置在表示式之前,其後的任何錯誤都不會出現。但是我不建議這麼做。
錯誤報告
錯誤日誌對於發現程式中的錯誤是非常有幫助的,但是有些時候它也會將應用程式的結構暴露給外部。為了有效的保護你的應用程式不受到由此而引發的問題。
在開發環境中,我喜歡讓PHP顯示並記錄所有錯誤訊息,而在生產環境中,我會讓PHP記錄大多數錯誤訊息,但不顯示出來。不管怎麼做,一定要遵循以下4個規則:
一定要讓PHP報告錯誤。
在開發環境中顯示錯誤。
在生產環境中不能顯示錯誤。
在開發環境和生產環境中都要記錄錯誤。
我在php.ini中為開發環境設定錯誤報告方式如下:
;顯示錯誤
display_errors = On
display_startup_errors = On
;報告所有錯誤
error_reporting = -1
;記錄錯誤
log_errors = On
我在php.ini中為生產環境設定錯誤報告方式如下:
;不顯示錯誤
display_errors = Off
display_startup_errors = Off
;除了注意事項之外,報告所有其他錯誤
error_reporting = E_ALL & ~E_NOTICE
;記錄錯誤
log_errors = On
異常捕獲
異常是許多流行程式語言的標配,但它們往往被 PHP 開發人員所忽視。像 Ruby 就是一個極度重視異常的語言,無論有什麼錯誤發生,像是 HTTP 請求失敗,或者資料庫查詢有問題,甚至找不到一個圖片資源,Ruby (或是所使用的 gems),將會丟擲異常,你可以透過螢幕立刻知道所發生的問題。
PHP 處理這個問題則比較隨意,呼叫 file_get_contents() 函式通常只會給出 FALSE 值和警告。許多較早的 PHP 框架比如 CodeIgniter 只是返回 false,將資訊寫入專有的日誌,或者讓你使用類似 $this->upload->get_error() 的方法來檢視錯誤原因。這裡的問題在於你必須找出錯誤所在,並且透過翻閱文件來檢視這個類使用了什麼樣的錯誤的方法,而不是明確的暴露錯誤。
另一個問題發生在當類自動丟擲錯誤到螢幕時會結束程式。這樣做會阻擋其他開發者動態處理錯誤的機會。應該丟擲異常讓開發人員意識到錯誤的存在,讓他們可以選擇處理的方式
php錯誤與異常處理方法
文章來源:搜尋引擎大全
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69911024/viewspace-2642588/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle異常錯誤處理Oracle
- ORACLE 異常錯誤處理Oracle
- 異常錯誤資訊處理
- PHP 核心知識點(一)異常和錯誤處理PHP
- Python錯誤處理和異常處理(二)Python
- rust學習十、異常處理(錯誤處理)Rust
- C++錯誤和異常處理C++
- goang 錯誤&異常處理機制Go
- PHP基礎之錯誤與異常PHP
- PHP錯誤和異常PHP
- 淺析php中的異常與錯誤PHP
- PHP 錯誤處理PHP
- php錯誤處理PHP
- PHP 核心 - 異常處理PHP
- 前端錯誤收集以及統一異常處理前端
- Python之錯誤異常和檔案處理Python
- .NET----錯誤和異常處理機制
- 在vue使用異常處理做錯誤提示Vue
- 說說你對異常處理和錯誤處理的理解
- python錯誤與異常Python
- thinkphp原始碼分析(四)—錯誤及異常處理篇PHP原始碼
- PHP 核心特性 - 錯誤處理PHP
- PHP基礎:異常處理ExceptionPHPException
- Java 異常表與異常處理原理Java
- 異常處理機制(二)之異常處理與捕獲
- PHP安裝後錯誤處理PHP
- 常用模組 PHP 錯誤處理PHP
- 在大型軟體專案中如何處理錯誤和異常
- nodejs程式異常退出處理方法NodeJS
- 異常篇——異常處理
- 異常處理
- 異常處理與推導式
- SpringBoot錯誤處理機制以及自定義異常響應原理解析Spring Boot
- JSP 異常處理如何處理?JS
- node錯誤處理與日誌
- [轉] Scala Try 與錯誤處理
- 異常-throws的方式處理異常
- 錯誤處理