摘要:捕捉錯誤禁止錯誤輸出設置錯誤處理器在腳本結束時運行的函數錯誤處理錯誤代碼錯誤信息錯誤文件錯誤行號捕捉致命錯誤這里發生一個警告錯誤,出發這里發生一個警告錯誤被捕獲發生致命錯誤,腳本停止運行觸發打開后輸出
PHP捕捉錯誤
禁止錯誤輸出
error_reporting(0);
設置錯誤處理器
set_error_handler("errorHandler");
在腳本結束時運行的函數
register_shutdown_function("fatalErrorHandler");
錯誤處理
/** * @param int $err_no 錯誤代碼 * @param string $err_msg 錯誤信息 * @param string $err_file 錯誤文件 * @param int $err_line 錯誤行號 * @return string */ function errorHandler($err_no = 0, $err_msg = "", $err_file = "", $err_line = 0) { $log = [ "[".date("Y-m-d h-i-s")."]", "|", $err_no, "|", $err_msg, "|", $err_file, "|", $err_line ]; $log_path = "./test.txt"; error_log(implode(" ",$log)." ",3, $log_path); }
捕捉致命錯誤
function fatalErrorHandler() { $e = error_get_last(); var_export($e); switch ($e["type"]) { case 1: errorHandler($e["type"], $e["message"], $e["file"], $e["line"]); break; } }
class DemoClass_1 { public function index() { //這里發生一個警告錯誤,出發errorHandler echo $undefinedVarible; } }
這里發生一個警告錯誤,被errorHandler 捕獲
$demo_1 = new DemoClass_1(); $demo_1->index();
發生致命錯誤,腳本停止運行觸發 fatalErrorHandler
$demo_2 = new DemoClass_2(); $demo_2->index();
打開test.txt后 輸出:
[2018-06-12 05-49-11] | 8 | Undefined variable: undefinedVarible | /Users/darry/htdocs/test.php | 57 [2018-06-12 05-49-11] | 1 | Uncaught Error: Class "DemoClass_2" not found in /Users/darry/htdocs/test.php:67 Stack trace: #0 {main} thrown | /Users/darry/htdocs/test.php | 67
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/39968.html
摘要:又或者反過來,把錯誤當成異常來處理。當然,我猜它的目的,應該也是為了能實現錯誤與異常之間優雅轉換而添加的。至此,錯誤與異常的學習基本完畢。 這話題已經沒有什么新意了,這里只是做做筆記,作為思路的一種整理,也以便后續忘了可以回來這里查找。 錯誤 以下是 PHP 最常見的幾種錯誤: // E_NOTICE echo $a; // E_WARNING echo 100 / 0; clas...
摘要:錯誤拋出及自定義處理定義中的錯誤拋出及自定義處理指的是允許我們自定義拋出錯誤并且捕捉錯誤并進行處理。例如我們編寫一個的函數,而參數必須是一個整數否則觸發錯誤運行結果如下捕捉錯誤異常摘自官方文檔 PHP 錯誤拋出及自定義處理 定義 php中的錯誤拋出及自定義處理指的是允許我們自定義拋出錯誤并且捕捉錯誤并進行處理。類似于 面向對象語言中的throw 及 try...catch... 在ph...
閱讀 916·2021-10-27 14:14
閱讀 1741·2021-10-11 10:59
閱讀 1315·2019-08-30 13:13
閱讀 3152·2019-08-29 15:17
閱讀 2750·2019-08-29 13:48
閱讀 488·2019-08-26 13:36
閱讀 2082·2019-08-26 13:25
閱讀 857·2019-08-26 12:24