PHP中的错误处理
PHP | 错误处理
创建脚本和Web应用程序时,错误处理是必不可少的部分。在任何程序中都没有错误处理代码,该程序似乎是不专业的,并且有潜在的安全风险。
处理PHP中的错误并不复杂且必要,因此程序知道遇到此类错误时应采取适当的措施。
有三种主要的错误检查方法,
die()函数
自定义错误检查
报告错误
1)die()
方法
此功能允许在发生特定错误时显示用户友好的消息。这允许程序与用户之间更好的交互。
例如,有一个代码找不到的文件。然后,它会打印出一个令人困惑和复杂的错误。
程序:
<?php//尝试打开一个文件
//在系统中不存在
$file=fopen("technology.txt","r");
?>
输出:
PHP Warning: fopen(technology.txt): failed to open stream:No such file or directory in /home/jdoodle.php on line 4
因此,如果找不到文件,为了更好地显示错误消息,可以编写以下程序,
程序:
<?php//检查文件名
if(file_exists("technology.txt")) {
$file = fopen("technology.txt", "r");
} else {
//如果找不到该文件,将显示消息
die("Error: The mentioned file was not found");
}
?>
输出:
Error: The mentioned file was not found
2)自定义错误处理功能
我们可以通过简单地创建函数来检查和自定义错误检查。存在错误时将调用它。
参数中至少需要传递两个参数。一种是错误级别,另一种是消息。最多可以一次传递五个参数。
语法:
function_name(level,message,error_file,line,context)
参数:
function_name:处理错误的错误函数的名称。
level:一个数字,指定错误的级别。
消息:需要显示的消息
Error_file(可选):提及发生错误的文件的名称。
Line(可选):提及发生错误的行号
Context(可选):包含所有正在使用的变量及其值的数组
这是在尝试打印不存在的变量时进行自定义错误检查的程序。
程序:
<?php//错误处理功能
function catching_Error($no, $str) {
echo "<b>Error:</b> [$no] $str";
}
//设置错误处理程序
set_error_handler("catching_Error");
//错误触发功能
echo($uu);
?>
输出:
<b>Error:</b> [8] Undefined variable: uu
trigger_error()函数
如果该函数或任何代码接收到逻辑上不正确的数据,则可以使用trigger_error()函数显示消息。
例如,老师只想招收那些安全性超过合格分数的学生,然后可以编写以下代码。
程序:
<?php//接受用户输入的标记
$marks=(int)readline('Enter the marks :');
if ($marks<=50) {
trigger_error("Repeat this class since you are fail");
}
?>
输出:
Enter the marks :43PHP Notice: Repeat this class since you are fail in /home/jdoodle.php on line 5
3)错误记录
通过使用函数error log()可以向特定文件或远程目标发送错误日志消息。
有什么比发送一封包含所发生错误描述的电子邮件更好呢?
程序:
<?php//检查错误的功能
function checking_errors($no, $str) {
echo "Error: [$no] $str";
echo "technology has been notified";
error_log("Error: [$no] $str",1,
"[email protected]","From:[email protected]");
}
//设置错误处理程序
set_error_handler("checking_errors",E_USER_WARNING);
//触发错误
$marks=43;
if ($marks<=50) {
trigger_error("Repeat this class since you are fail",E_USER_WARNING);
}
?>
输出:
Error: [512] Repeat this class since you are failtechnology has been notifiedThe mail received by the user will beError: [512] Repeat this class since you are fail
以上是 PHP中的错误处理 的全部内容, 来源链接: utcz.com/z/334692.html