錯誤的分類
語法錯誤:程式沒法執行,直接提示語法錯誤
執行時錯誤:只有程式執行到某行,或在某些特定的情形下執行時才會發生的錯誤(主要面對)
邏輯錯誤:程式從頭到尾都沒有發生(並提示)錯誤,但程式執行結果錯誤
錯誤分級
每個級別的錯誤,對應乙個內部的名稱—系統常量
系統錯誤: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個引數
注意:該函式無需手工呼叫,出錯時會自動呼叫;一旦用自定義錯誤,則系統不在出錯誤處理;如果系統發生嚴重錯誤,則不會呼叫自定函式,由系統處理(顯示並終止)
Delphi常見錯誤及解決方法
前言 本節整理了delphi中一些常見錯誤 並給出了相應的解決方法。問題及解決 問題分析 dbgrid是可以修改的,但需要至少兩個條件 第一,dbgrid本身屬性設定允許使用者修改,第二它所繫結的資料集元件是可以修改的。你所說的出 錯 dataset not in edit or insert mo...
QT常見錯誤及解決方法
1 error header was not declared in this scope 在使用此變數之前沒有對其進行定義 2 error rtlwerpreportexception failed with status code 1073741823 這個錯誤多半是因為乙個變數定義好後還沒有被...
Oracle 連線常見錯誤及解決方法
出現資料庫的連線問題可在命令列下使用 tnsping 服務名 來檢查出錯原因。常見錯誤有 ora 12535 tns 操作超時 首先關閉防火牆,這是最常見的連線出錯原因。如果仍然不行,檢查 tnsnames.ora 檔案配置,主要是主機名稱是否正確 tnsnames.ora network conf...