PHP異常

【Exception】php

  Exception類是全部異常類的基類。html

 

 1 //Exception類摘要
 2 Exception{
 3     //屬性
 4     protected string $message;    //異常的消息內容
 5     protected int $code;    //異常代碼
 6     protected string $file;    //拋出異常的文件名
 7     protected int $line;    //拋出異常在文件中的行號
 8 
 9     //方法
10     public __construct([string $message='' [,int $code=0 [,Exception $previous=NULL]]]);    //構造函數
11     final public string getMessage(void);    //獲取異常的消息內容
12     final public Exception getPrevious(void);    //返回異常鏈中的前一個異常
13     final public int getCode(void);    //獲取異常代碼
14     final public string getFile(void);    //獲取發生異常的程序文件名
15     final public int getLine(void);    //獲取發生異常的代碼在文件中的行號
16     final public array getTrace(void);    //獲取異常的追蹤信息
17     final public string getTraceAsString(void);    //獲取一個字符串類型的異常追蹤信息
18     public string __toString(void);    //將異常對象轉化爲字符串
19     final private void __clone(void);    //異常克隆
20 }

 【ErrorException】web

 1 //ErrorException類摘要
 2 ErrorException extends Exception{
 3     //屬性
 4     protected int $severity;    //異常級別
 5 
 6     //方法
 7     public __construct([string $message='' [,int $code=0 [,int $severity=1 [,string $filename=__FILE__ [,int $lineno=__LINE__ [,Exception $previsou=null]]]]]]);
 8     final public init getSeverity(void);
 9 
10     //繼承的方法
11     final public string Exception::getMessage(void);
12     final public Exception Exception::getPrevoius(void);
13     final public int Exception::getCode(void);
14     final public string Exception::getFile(void);
15     final public int Exception::getLine(void);
16     final public array Exception::getTrace(void);
17     final public string Exception::getTraceAsString(void);
18     public string Exception::__toString(void);
19     final private void Exception::__clone(void);
20 }

【相關配置】數組

 1 error_reporting integer;    //設置錯誤報告的級別。該參數能夠是一個任意的標識二進制位字段的整數或常數名稱。默認值爲E_ALL&~E_NOTICE。
 2 display_error boolean;    //配置將錯誤信息做爲輸出的一部分顯示在屏幕上,仍是對用戶隱藏而不顯示。
 3 display_startup_errors boolean;    //設置是否顯示PHP啓動過程當中的錯誤。即便display_error設置爲開啓,PHP啓動過程當中的錯誤也不會被顯示。
 4 log_error boolean;    //設置是否將腳本運行的錯誤信息記錄到服務器錯誤日誌或error_log之中。
 5 log_error_max_len integer;    //log_error的最大字節數。在error_log會添加有關錯誤源的信息。默認值爲1024.設置爲0表示不限長度。該參數的設置對記錄的錯誤,顯示的錯誤,以及$php_errormsg都會有限制做用。
 6 ignore_repeated_errors boolean;    //是否記錄重複的錯誤信息。重複的錯誤必須出如今同一個文件的同一行代碼,除非ignore_repeated_source設置爲true。
 7 ignore_repeated_source boolean;    //設置爲開啓時,重複的信息將不會記錄它是由不一樣的文件仍是不一樣的源代碼產生的。忽略重複消息時,也忽略消息的來源。
 8 report_memleaks boolean;    //若是設置爲off,則內存泄露信息不會顯示在stdout或日誌中。只對調試編譯有效,並且須要error_reporting包含E_WARNING纔會其做用。
 9 track_errors boolean;    //若是開啓,最後一個錯誤將永遠存在於變量$php_errormsg中。
10 html_errors boolean;    //在錯誤信息中關閉HTML標籤。這種新的HTML格式的錯誤信息是能夠點擊的,它引導用戶前往描述該錯誤或致使該錯誤發生的函數的參考信息頁面。這些參考與docref_root和docref_ext的設置有關。
11 xmlrpc_errors boolean;    //關閉正常的錯誤報告,並將錯誤格式設置爲XML-RPC錯誤信息的格式。
12 xmlrpc_error_number integer;    //用做XML-RPC faultCode元素的值。
13 docref_root string;    //新的錯誤信息格式包含了對應的參考頁面,該頁面對錯誤進行具體描述,或描述了致使該錯誤發生的函數。爲了提供手冊的頁面,能夠在PHP官方網站下載對應的語言手冊,並在ini中設置網址到本地對應的地址。
14 docref_ext string;    //參見docref_root。該值必須已點(.)開頭。
15 error_prepend_string string;    //在錯誤信息以前輸出的內容。
16 error_append_string string;    //錯誤信息以後輸出的內容。
17 error_log string;    //設置腳本錯誤將被記錄到的文件。該文件必須是web服務器用戶可寫的。若是syslog被設置,則將錯誤信息發送到系統日誌記錄器。

 【相關預約義常量】服務器

   能夠在php.ini中使用常量名稱,但在php以外,如httpd.conf中,必須使用二進制位掩碼。app

 1 //相關預約義變量
 2 E_ERROR    1:致命的運行時錯誤,將致使腳本終止。該類錯誤通常不可能恢復。
 3 E_WARNING    2:運行時警告。僅給出提示信息,腳本不會終止。
 4 E_PARSE    4:編譯時語法解析錯誤。解析錯誤僅僅由分析器產生。
 5 E_NOTICE    8:運行時的通知。表示腳本遇到可能會表現爲錯誤的狀況。正常運行的腳本里面也肯能會有相似的通知。
 6 E_CORE_ERROR    16:在PHP初始化啓動過程當中出現的致命性錯誤。相似於E_ERROR可是由PHP引擎核心產生。
 7 E_CORE_WARNING    32:PHP初始化啓動過程當中發生的警告。相似於E_WARNING,可是是由PHP核心引擎產生的。
 8 E_COMPILE_ERROR    64:致命的編譯時錯誤。相似於E_ERROR可是由Zend腳本引擎產生的。
 9 E_COPILE_WARNING    128:編譯時警告。相似於E_WARNING可是由Zend腳本引擎產生的。
10 E_USER_ERROR    256:用戶產生的錯誤信息。相似於E_ERROR,可是由用戶本身在代碼中使用trigger_error()產生的。
11 E_USER_WARNING    512:用戶產生的警告信息。相似於E_WARNING,可是由用戶本身在代碼中使用trigger_error()產生的。
12 E_USER_NOTICE    1024:用戶產生的通知信息。相似於E_NOTICE,可是由用戶本身在代碼中使用trigger_error()產生的。
13 E_STRICT    2048:啓用PHP對代碼的修改建議,以確保代碼具備最佳的互操做性和向前兼容性。
14 E_RECOVERABLE_ERROR    4096:可被捕捉的致命錯誤。表示發生了一個可能很是危險的錯誤,但尚未致使PHP引擎處於不穩定狀態。若是該錯誤沒有被用戶自定義句柄捕獲(set_error_handler()),將成爲一個E_ERROR,從而終止腳本運行。
15 E_DEPRECATED    8192:運行時通知。啓用後將會在對將來版本中可能沒法正常工做的代碼給出警告。
16 E_USER_DEPRECATE    16384:用戶產生的警告信息。相似於E_DEPRECATED,可是由用戶本身在代碼中使用trigger_error()產生的。
17 E_ALL    30719:E_STRICT以外的全部錯誤和警告信息。

【相關函數】函數

 1 array debug_backtrace([int $options=DEBUG_BACKTRACE_PROVIDE_OBJECT [,int $limit=0]]);
 2 //產生一條PHP的回溯追蹤
 3 //截止5.3.6,$option是DEBUG_BACKTRACE_PROVIDE_OBJECT和DEBUG_BACKTRACE_IGNORE_ARGS的位掩碼,分別表示是否填充Object的索引和是否忽略args的索引(包括全部的function/method的參數,可以節省內存開銷)。5.3.6以前能使用的值只有TRUE和FALSE,表示是否設置DEBUG_BACKTRACE_PROVIDE_OBJECT。
 4 //截止5.4,$limit用於返回堆棧幀的數量。默認值爲0,返回全部的堆棧幀。
 5 //返回值是一個包含衆多關聯數組的數組。
 6 
 7 void debug_print_backtrace([int $options=0[,$limit=0]]);
 8 //打印一條PHP回溯,包括函數調用,被included/required的文件和eval()代碼.
 9 //$option:是否忽略args的索引,包括全部的function/method的參數,可以節省內存開銷。
10 //$limit:限制返回堆棧幀的數量。默認值0表示返回全部堆棧幀。
11 
12 array error_get_last(void);
13 //獲取最後一個錯誤的相關信息
14 
15 bool error_log(string $message[,int $message_type=0[,string $destination[,string $extra_headers]]]);
16 //把錯誤信息發送到web服務器的錯誤日誌或保存到一個文件中
17 //$message:被記錄的錯誤信息
18 //$message_type:錯誤信息發送到何處。可能的信息類型有:0($message發送到PHP的系統日誌。使用操做系統的日誌機制仍是一個文件,取決於error_log指令設置),1($message發送到$destination設置的郵件地址。第四個參數$extra_headers只有在這個類型裏纔會被用到),2(再也不是一個選項),3($message被髮送到位置爲$destination的文件裏。字符$message不會默認當作新的一行),4($message直接發送到SAPI的日誌處理程序中)。
19 //$destination:由$message_type決定。
20 //$extra_headers:額外的頭部。當$message_type設置爲1時使用。該信息類型使用了mail()的同一個內置函數。
21 
22 int error_reporting([int $level]);
23 //運行時配置error_reporting指令。設置應該報告何種PHP錯誤。
24 
25 bool restore_error_handler(void);
26 //使用set_error_handler()改變錯誤處理函數以後,該函數用於還原以前的錯誤處理程序(能夠是內置的,也能夠是用戶自定義的函數)。
27 //該函數老是返滬TRUE。
28 
29 bool restore_exception_handler(void);
30 //在使用set_exception_handler()改變異常處理函數以後,該函數能夠還原以前的異常處理程序(能夠是內置的,也能夠是用戶自定義的函數)。
31 //該函數老是返回TRUE
32 
33 mixed set_error_handler(callable $error_handler[,int $error_type=E_ALL|E_STRICT]);
34 //設置一個用戶自定義的錯誤處理函數。
35 //$error_handler:用戶自定義用於處理腳本中出現錯誤的函數。handler(int $errno,string $errstr[,string $errfile[,int $errline[,array $errcontext]]];$errno是錯誤級別;$errstr是錯誤信息;$errfile是發生錯誤的文件名;$errline錯誤發生的行號;$errcontext指向錯誤發生的活動的符號表,即錯誤觸發處做用域內全部變量的數組。若是該函數返回FALSE,標準的錯誤處理函數將繼續被調用。
36 //$error_type:該參數所制定的錯誤類型都會繞過PHP標準錯誤處理程序(除非調用函數返回了FALSE)。error_reporting()設置不會起做用,自定義的錯誤處理函數仍然會被調用(仍然能夠獲取error_reporting的當前值)。@error-control operator前綴的語句發生錯誤時,該值是0.
37 //若是以前有定義過戳無處理程序,返回該程序的名稱;若是是內置的錯誤處理程序或一個無效的回調函數,返回NULL。若是以前的錯誤處理程序是一個類的方法,返回一個帶類和方法名的索引數組。
38 //注意:E_ERROR,E_PARSE,E_CORE_ERROR,E_CORE_WARNING,E_COMPILE_ERROR,E_COMPILE_WARNING和再調用set_errro_handler()函數所在的文件中產生的大多數E_STRICT不能由用戶定義的函數來處理。若是錯誤發生在腳本執行以前(如文件上傳),也不會調用自定義的錯誤處理程序。
39 
40 callable set_exception_handler(callable $exception_handler);
41 //設置一個默認的異常處理程序,用於沒有用try/catch塊來捕獲的異常。在$exception_handler調用後,異常將終止。
42 //$exception_handler:一個未捕獲的異常發生時所調用的函數。該函數必須在調用set_exception_handler()錢定義。且該處理函數接受一個參數,該參數是一個拋出的異常對象。
43 //也能夠傳遞一個NULL值用於重置異常處理函數爲默認值。
44 //返回以前定義的異常處理程序的名稱,或在錯誤時返回NULL。若是以前沒有定義錯誤處理程序,也會返回NULL。若是參數使用NULL重置程序爲默認狀態,將返回TRUE。
45 
46 bool trigger_error(string $error_msg[,int $error_type=E_USER_NOTICE]);
47 //觸發一個用戶級別的error/warning/notice信息。它能關聯內置的錯誤處理程序,也能使用用戶自定義的函數做爲新的錯誤處理函數。
48 //$error_msg:該error的特定錯誤信息,長度限制在1024個字符,超過1024長度的字符將被截斷。
49 //$error_type:該error所指定的錯誤類型。僅E_USER系列常量對其有效。默認值E_USER_NOTICE.
50 //若是指定了錯誤的$error_type會返回FALSE,正確則返回TRUE。
51 //該函數是user_error()的別名。
相關文章
相關標籤/搜索