摘要:捕捉错误禁止错误输出设置错误处理器在脚本结束时运行的函数错误处理错误代码错误信息错误文件错误行号捕捉致命错误这里发生一个警告错误,出发这里发生一个警告错误被捕获发生致命错误,脚本停止运行触发打开后输出
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
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/39968.html
摘要:又或者反过来,把错误当成异常来处理。当然,我猜它的目的,应该也是为了能实现错误与异常之间优雅转换而添加的。至此,错误与异常的学习基本完毕。 这话题已经没有什么新意了,这里只是做做笔记,作为思路的一种整理,也以便后续忘了可以回来这里查找。 错误 以下是 PHP 最常见的几种错误: // E_NOTICE echo $a; // E_WARNING echo 100 / 0; clas...
摘要:错误抛出及自定义处理定义中的错误抛出及自定义处理指的是允许我们自定义抛出错误并且捕捉错误并进行处理。例如我们编写一个的函数,而参数必须是一个整数否则触发错误运行结果如下捕捉错误异常摘自官方文档 PHP 错误抛出及自定义处理 定义 php中的错误抛出及自定义处理指的是允许我们自定义抛出错误并且捕捉错误并进行处理。类似于 面向对象语言中的throw 及 try...catch... 在ph...
阅读 885·2021-10-27 14:14
阅读 1692·2021-10-11 10:59
阅读 1265·2019-08-30 13:13
阅读 3120·2019-08-29 15:17
阅读 2667·2019-08-29 13:48
阅读 415·2019-08-26 13:36
阅读 2008·2019-08-26 13:25
阅读 791·2019-08-26 12:24