PHP 錯誤處理

| | | | | | | | | | | | | | | | | | |
PHP錯誤處理方法:
  • 使用die()方法
  • 自定義錯誤處理
基本錯誤處理:使用die() 函數die() 函數打印一條消息並退出當前腳本。語法:
die ($message)
示例:< /b><代碼><代碼>
// 顯示默認錯誤處理的 PHP 代碼$file = fopen ( "engineer.txt" , "w" ); ?> 注意。運行上面的代碼,engineer.txt文件不見了,然後會顯示運行時錯誤。
運行時錯誤:
PHP 警告:fopen (engineer.txt):打開流失敗:/home/dac923dff0a2558b37ba742613273073.php 中的權限被拒絕在第 2 行
為防止出現此錯誤,請使用 die() 函數。 die() 函數實現如下:示例:
// PHP 代碼檢查錯誤
// 如果沒有文件
// 然後退出腳本if (! file_exists ( "engineer.txt" )) { die ( " 文件不存在 " ); }
// 如果文件存在
// 然後繼續else { $file = fopen ( "engineer.txt" , "w" ); }
?>
注意。如果文件是工程師.txt 丟失,它將顯示輸出。
退出
文件不存在
自定義錯誤處理程序:創建自定義PHP 中的錯誤處理程序非常簡單。創建一個可以在 PHP 發生錯誤時調用的函數。語法:
error_function ($error_level, $error_message, $error_file, $error_line, $error_context)
參數:該函數採用上述五個參數,如下所述:
  • $error_level:這是必填參數,必須是整數。有預定義的錯誤級別。
  • $error_message:這是一個必需參數,這是用戶要打印的消息。
  • $ error_file:是可選參數,用於指定錯誤發生的文件。
  • $error_line:是可選參數,用於指定錯誤所在的行號發生了。
  • $error_context:這是一個可選參數,用於指定一個數組,其中包含每個變量及其在發生錯誤時的值。
error_level:這些是可能的錯誤級別,如下所列:
  • 1:.E_ERROR:致命的運行時錯誤已停止
  • 2:E_WARNING:非致命的運行時錯誤,腳本執行停止
  • 4:E_PARSE:解析器生成的編譯時錯誤
  • 8:E_NOT ICE:腳本遇到了可能是錯誤的東西
  • 16:E_CORE_ERROR:在腳本初始運行期間發生的致命錯誤
  • 32:E_CORE_WARNING:在初始腳本運行期間發生的非致命錯誤
  • 8191: E_ALL:所有錯誤和警告
set_error_handler() 函數:創建 myerror() 函數後,您需要安裝自定義處理程序錯誤,因為 PHP 通常會處理它,但如果用戶正在執行自定義錯誤處理,那麼用戶應該設置它而不是參數和將 myerror 函數作為字符串傳遞。示例:
// 創建打印消息的我的錯誤函數
// userfunction myerror ( $error_no , $error_msg ) { echo "錯誤:[$error_no] $error_msg" ; echo "Now Script will end " ; //如果出現錯誤,腳本必須被停止 die (); }
// 設置 set_error_handlerset_error_handler ( "myerror" ); $a = 10; $b = 0;
// 這將產生錯誤echo ( $a / $b ) ;; ?>
輸出:
錯誤:[2]除法b y 零 現在腳本將結束
輸出:總是嘗試使用自定義錯誤處理來處理錯誤,因為它會根據用戶顯示更具體的消息,這對用戶很有用。如果錯誤沒有用自定義錯誤處理來處理,那麼就會發生錯誤,那麼腳本將默認停止,但如果它使用自定義錯誤處理來處理錯誤,它可以在顯示錯誤消息後繼續執行腳本。