- 之前,我们面对的情形都是错误发生的时候,系统生成错误,并处理错误(给出错误信息)。
- 我们能控制的就只是:是否显示,显示什么,是否记录,记录到哪里?
- 实际上,我们也可以更进一步控制错误信息,以诀定错误发生的时候,显示什么样的错误信息。 这就是“自定义错误处理”。
- 具体做法,分2步:
- 第1步:
声明错误发生时,由我们自己来处理,设定一个错误处理的函数名。
- 第2步:
定义该函数,在函数中详细设定错误的处理情况:怎么显示,显示什么,怎么记录,记录什么。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<?php
// 必须先设置错误回调,后面报错才能得到回调
// 自定义错误,分2步:
// 1、声明,我们自己使用自己的函数处理错误
// set_error_handler('函数名')
set_error_handler('my_error_handler');
// 2、定义函数!
// errCode:错误代码,errMsg:错误信息,errFile:错误文件,errLine:错误行号
// 此形参顺序固定,是由系统调用并传入实参数据
function my_error_handler($errCode, $errMsg, $errFile, $errLine) {
echo '<br>错误代码:' . $errCode;
echo '<br>错误信息:' . $errMsg;
echo '<br>错误文件:' . $errFile;
echo '<br>错误行号:' . $errLine;
echo '<hr>';
// 可以将拼接的错误字符串存到指定文件夹
// file_put_contents('./error_log.txt', $error_str, FILE_APPEND);
// file_put_contents('./error_log.html', $error_str, FILE_APPEND);
}
// 报错代码
include 'nav1.php'; // 载入失败
echo $page; // 未定义变量
?>
</body>
</html>
网友评论