先决条件:错误类型
PHP用于Web开发。 PHP中的错误处理几乎类似于所有编程语言中的错误处理。 PHP中的默认错误处理将提供文件名行号和错误类型。
处理PHP错误的方法:
- 使用die()方法
- 自定义错误处理
语法如下:
die( $message )
例子:
<
?php// Php code showing default error handling$file = fopen ( "geeks.txt" , "w" );
?>
注意:
运行上面的代码, 然后geeks.txt文件不存在, 则它将显示运行时错误消息。
运行时错误:
PHP Warning: fopen(geeks.txt): failed to open stream: Permission denied
in /home/dac923dff0a2558b37ba742613273073.php on line 2
为防止此错误, 请使用die()函数。下面是die()函数的实现:
例子:
<
?php// PHP code to check errors// If file is not present
// then exit from script
if ( ! file_exists ( "geeks.txt" ) ) {
die ( "File is not present" );
}// If file is present
// then continue
else {
$file = fopen ( "geeks.txt" , "w" );
}
?>
注意:
如果geeks.txt文件不存在, 则将显示输出。
输出如下
File is not present
自定义错误处理:在PHP中创建自定义错误处理程序非常简单。创建一个在PHP中发生错误时可以调用的函数。
语法如下:
error_function( $error_level, $error_message, $error_file, $error_line, $error_context)
参数:此函数接受上述和以下所述的五个参数:
- $ error_level:它是必填参数, 并且必须是整数。有预定义的错误级别。
- $ error_message:它是必填参数, 它是用户要打印的消息。
- $ error_file:它是可选参数, 用于指定发生错误的文件。
- $ error_line:它是可选参数, 用于指定发生错误的行号。
- $ error_context:它是可选参数, 用于指定包含每个变量及其发生错误的值的数组。
- 1:.E_ERROR:致命的脚本运行时错误执行已停止
- 2:E_WARNING:脚本的非致命运行时错误执行已停止
- 4:E_PARSE:由解析器生成的编译时错误
- 8:E_NOTICE:脚本发现了可能是错误的内容
- 16:E_CORE_ERROR:脚本初始启动期间发生的致命错误
- 32:E_CORE_WARNING:脚本初始启动期间未发生致命错误
- 8191:E_ALL:所有错误和警告
例子:
<
?php// Creates my error function which prints message
//to user
function myerror( $error_no , $error_msg ) {
echo "Error: [$error_no] $error_msg " ;
echo "\n Now Script will end" ;
// When error occurred script has to be stoped
die ();
} // Setting set_error_handler
set_error_handler( "myerror" );
$a = 10;
$b = 0;
// This will generate error
echo ( $a / $b );
;
?>
输出如下:
Error: [2] Division by zero
Now Script will end
【PHP中的错误处理方法详细介绍+示例】结论:始终尝试使用"自定义错误处理"进行错误处理, 因为它将根据用户显示更多指定的消息, 这可能会对用户有所帮助。如果使用自定义错误处理无法处理错误, 则发生错误, 默认情况下将停止输出脚本, 但是如果使用自定义错误处理处理错误, 则可以在显示错误消息后继续执行脚本。
推荐阅读
- Java中的final关键字介绍和用法指南
- 学习道德黑客的5大理由和指南
- HTML如何使用DOM createComment()方法(代码示例)
- PHP如何使用getimagesizefromstring()函数(示例)
- 如何使用jQuery从JSON文件中获取数据并显示在HTML表中()
- C++开发环境部署(环境设置详细介绍)
- python如何使用filter()(用法示例)
- Python MongoDB如何使用insert_many查询(示例)
- 如何使用JavaScript检查元素是否是父元素的子元素()