PHP 錯誤處理

whm156377發表於2020-04-01

PHP 錯誤處理

在建立指令碼和 Web 應用程式時,錯誤處理是一個重要的部分。如果您的程式碼缺少錯誤檢測編碼,那麼程式看上去很不專業,也為安全風險敞開了大門。

本教程介紹了 PHP 中一些最為重要的錯誤檢測方法。

我們將為您講解不同的錯誤處理方法:

簡單的 "die()" 語句

自定義錯誤和錯誤觸發器

錯誤報告

基本的錯誤處理:使用 die() 函式

第一個例項展示了一個開啟文字檔案的簡單指令碼:

<?php$file=fopen("welcome.txt","r");?>

如果檔案不存在,您會得到類似這樣的錯誤:

Warning: fopen(welcome.txt) [function.fopen]: failed to open stream:No such file or directory in C:webfoldertest.php on line 2

為了避免使用者得到類似上面的錯誤訊息,我們在訪問檔案之前檢測該檔案是否存在:

<?phpif(!file_exists("welcome.txt"))

{die("File not found");

}else{$file=fopen("welcome.txt","r");

}?>

現在,如果檔案不存在,您會得到類似這樣的錯誤訊息:

File not found

相比之前的程式碼,上面的程式碼更有效,這是由於它採用了一個簡單的錯誤處理機制在錯誤之後終止了指令碼。

然而,簡單地終止指令碼並不總是恰當的方式。讓我們研究一下用於處理錯誤的備選的 PHP 函式。

建立自定義錯誤處理器

建立一個自定義的錯誤處理器非常簡單。我們很簡單地建立了一個專用函式,可以在 PHP 中發生錯誤時呼叫該函式。

該函式必須有能力處理至少兩個引數 (error level 和 error message),但是可以接受最多五個引數(可選的:file, line-number 和 error context):

語法

error_function(error_level,error_message,error_file,error_line,error_context)

引數

描述

error_level 必需。為使用者定義的錯誤規定錯誤報告級別。必須是一個數字。參見下面的表格:錯誤報告級別。

error_message 必需。為使用者定義的錯誤規定錯誤訊息。

error_file 可選。規定錯誤發生的檔名。

error_line 可選。規定錯誤發生的行號。

error_context 可選。規定一個陣列,包含了當錯誤發生時在用的每個變數以及它們的值。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69926583/viewspace-2683734/,如需轉載,請註明出處,否則將追究法律責任。

相關文章