php錯誤處理

2021-07-25 19:10:28 字數 2054 閱讀 7100

錯誤的分類

語法錯誤:程式沒法執行,直接提示語法錯誤

執行時錯誤:只有程式執行到某行,或在某些特定的情形下執行時才會發生的錯誤(主要面對)

邏輯錯誤:程式從頭到尾都沒有發生(並提示)錯誤,但程式執行結果錯誤

錯誤分級

每個級別的錯誤,對應乙個內部的名稱—系統常量

系統錯誤:e_error(嚴重錯誤,一發生,系統立即停止)、e_warning、e_notice

e_error=1(系統錯誤)

e_warning=2(系統警告)

e_parse=4(語法錯誤)

e_notice=8(系統提示)

(系統內部的整數常量,這些常量是我們對該類錯誤進行控制的識別符號)

使用者自定義錯誤

只有3個:e_user_error、e_user_ warning、e_user_ notice

可以在程式中,自己建立錯誤---是為了針對某些資料的不合理情形,而建立的錯誤(如年齡超過188等)

其他e_all:代表所有錯誤

錯誤的觸發

正常觸發:程式執行過程中體現出來

人工觸發:程式設計師通過程式**而產生的乙個錯誤

trigger_error(「錯誤描述資訊」,使用者錯誤代號);

顯示錯誤報告

display_errors:控制是否顯示

error_reporting:控制顯示哪些級別的錯誤

控制的方式有兩種:

php.ini檔案中:對系統中所有執行的php程式都有效

display_errors=on/off

error_reporting= e_notice (只顯示notice這一級別錯誤提示)

error_reporting= e_notice | e_warning(顯示notice和warning一級別錯誤提示)

error_reporting= e_notice & e_warning(什麼都不顯示)

error_reporting= e_all(顯示所有,但不包含strict錯誤)

error_reporting= e_all | e_strict(顯示所有錯誤,開發中最常用)

如果在顯示所有錯誤的基礎上,關閉個別錯誤,與狀態設定(關閉)的原理一致,在顯示所有錯誤的基礎上將個別錯誤取反並做按位與運算

在網頁**中,只影響當前的網頁**(優先級別高)

ini_set(「控制項」,值);(幾乎可以設定所有php.ini中的設定項ini_get(「設定項名稱」)使用者獲取某項的值)

示例: ini_set(「display_errors」,1);//1表示顯示,0表示不顯示

ini_set(「error_reporting」, e_notice);(只顯示notice這一級別錯誤提示)

記錄錯誤日誌(2種途徑)

log_errors:控制是否記錄錯誤日誌

error_log:控制錯誤日誌記錄到**,給定乙個檔名就可以

乙個特殊值:syslog,會記錄到作業系統日誌中,而不會記錄到檔案

php.ini中:

log_errors=on

error_log=「錯誤日誌檔名」(沒有給定路徑,系統會在每個資料夾下建立檔案並記錄進去)

當前檔案中使用ini_set(「log_errors」,on);

自定義錯誤處理器

就是自己控制錯誤的顯示內容和記錄內容

分兩步完成:

1.設定自定義錯誤處理函式

set_error_handler(「函式名」);

2.定義該函式(並通常需要設定4個引數)

function error_handler($errno,$errmsg,$errfile,$errline){

// 處理該4個引數

注意:該函式無需手工呼叫,出錯時會自動呼叫;一旦用自定義錯誤,則系統不在出錯誤處理;如果系統發生嚴重錯誤,則不會呼叫自定函式,由系統處理(顯示並終止)

PHP 錯誤處理

在 php 中,預設的錯誤處理很簡單。一條訊息會被傳送到瀏覽器,這條訊息帶有檔名 行號以及一條描述錯誤的訊息。在建立指令碼和 web 應用程式時,錯誤處理是乙個重要的部分。如果您的 缺少錯誤檢測編碼,那麼程式看上去很不專業,也為安全風險敞開了大門。本教程介紹了 php 中一些最為重要的錯誤檢測方法。...

PHP 錯誤處理

在 php 中,預設的錯誤處理很簡單。一條訊息會被傳送到瀏覽器,這條訊息帶有檔名 行號以及一條描述錯誤的訊息。在建立指令碼和 web 應用程式時,錯誤處理是乙個重要的部分。如果您的 缺少錯誤檢測編碼,那麼程式看上去很不專業,也為安全風險敞開了大門。本教程介紹了 php 中一些最為重要的錯誤檢測方法。...

PHP 錯誤處理

在 php 中,預設的錯誤處理很簡單。一條錯誤訊息會被傳送到瀏覽器,這條訊息帶有檔名 行號以及描述錯誤的訊息。在建立指令碼和 web 應用程式時,錯誤處理是乙個重要的部分。如果您的 缺少錯誤檢測編碼,那麼程式看上去很不專業,也為安全風險敞開了大門。本教程介紹了 php 中一些最為重要的錯誤檢測方法。...