摘要:捕捉錯(cuò)誤禁止錯(cuò)誤輸出設(shè)置錯(cuò)誤處理器在腳本結(jié)束時(shí)運(yùn)行的函數(shù)錯(cuò)誤處理錯(cuò)誤代碼錯(cuò)誤信息錯(cuò)誤文件錯(cuò)誤行號捕捉致命錯(cuò)誤這里發(fā)生一個(gè)警告錯(cuò)誤,出發(fā)這里發(fā)生一個(gè)警告錯(cuò)誤被捕獲發(fā)生致命錯(cuò)誤,腳本停止運(yùn)行觸發(fā)打開后輸出
PHP捕捉錯(cuò)誤
禁止錯(cuò)誤輸出
error_reporting(0);
設(shè)置錯(cuò)誤處理器
set_error_handler("errorHandler");
在腳本結(jié)束時(shí)運(yùn)行的函數(shù)
register_shutdown_function("fatalErrorHandler");
錯(cuò)誤處理
/** * @param int $err_no 錯(cuò)誤代碼 * @param string $err_msg 錯(cuò)誤信息 * @param string $err_file 錯(cuò)誤文件 * @param int $err_line 錯(cuò)誤行號 * @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); }
捕捉致命錯(cuò)誤
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() { //這里發(fā)生一個(gè)警告錯(cuò)誤,出發(fā)errorHandler echo $undefinedVarible; } }
這里發(fā)生一個(gè)警告錯(cuò)誤,被errorHandler 捕獲
$demo_1 = new DemoClass_1(); $demo_1->index();
發(fā)生致命錯(cuò)誤,腳本停止運(yùn)行觸發(fā) 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
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/39968.html
摘要:又或者反過來,把錯(cuò)誤當(dāng)成異常來處理。當(dāng)然,我猜它的目的,應(yīng)該也是為了能實(shí)現(xiàn)錯(cuò)誤與異常之間優(yōu)雅轉(zhuǎn)換而添加的。至此,錯(cuò)誤與異常的學(xué)習(xí)基本完畢。 這話題已經(jīng)沒有什么新意了,這里只是做做筆記,作為思路的一種整理,也以便后續(xù)忘了可以回來這里查找。 錯(cuò)誤 以下是 PHP 最常見的幾種錯(cuò)誤: // E_NOTICE echo $a; // E_WARNING echo 100 / 0; clas...
摘要:捕捉錯(cuò)誤禁止錯(cuò)誤輸出設(shè)置錯(cuò)誤處理器在腳本結(jié)束時(shí)運(yùn)行的函數(shù)錯(cuò)誤處理錯(cuò)誤代碼錯(cuò)誤信息錯(cuò)誤文件錯(cuò)誤行號捕捉致命錯(cuò)誤這里發(fā)生一個(gè)警告錯(cuò)誤,出發(fā)這里發(fā)生一個(gè)警告錯(cuò)誤被捕獲發(fā)生致命錯(cuò)誤,腳本停止運(yùn)行觸發(fā)打開后輸出 PHP捕捉錯(cuò)誤 禁止錯(cuò)誤輸出 error_reporting(0); 設(shè)置錯(cuò)誤處理器 set_error_handler(errorHandler); 在腳本結(jié)束時(shí)運(yùn)行的函數(shù) regis...
摘要:錯(cuò)誤拋出及自定義處理定義中的錯(cuò)誤拋出及自定義處理指的是允許我們自定義拋出錯(cuò)誤并且捕捉錯(cuò)誤并進(jìn)行處理。例如我們編寫一個(gè)的函數(shù),而參數(shù)必須是一個(gè)整數(shù)否則觸發(fā)錯(cuò)誤運(yùn)行結(jié)果如下捕捉錯(cuò)誤異常摘自官方文檔 PHP 錯(cuò)誤拋出及自定義處理 定義 php中的錯(cuò)誤拋出及自定義處理指的是允許我們自定義拋出錯(cuò)誤并且捕捉錯(cuò)誤并進(jìn)行處理。類似于 面向?qū)ο笳Z言中的throw 及 try...catch... 在ph...
閱讀 937·2021-10-27 14:14
閱讀 1754·2021-10-11 10:59
閱讀 1327·2019-08-30 13:13
閱讀 3164·2019-08-29 15:17
閱讀 2762·2019-08-29 13:48
閱讀 502·2019-08-26 13:36
閱讀 2092·2019-08-26 13:25
閱讀 866·2019-08-26 12:24