PHP中的错误处理方法详细介绍+示例

先决条件:错误类型
PHP用于Web开发。 PHP中的错误处理几乎类似于所有编程语言中的错误处理。 PHP中的默认错误处理将提供文件名行号和错误类型。
处理PHP错误的方法:

  • 使用die()方法
  • 自定义错误处理
基本错误处理:使用die()函数,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:它是可选参数, 用于指定包含每个变量及其发生错误的值的数组。
error_level:这些是可能的错误级别, 在下面列出:
  • 1:.E_ERROR:致命的脚本运行时错误执行已停止
  • 2:E_WARNING:脚本的非致命运行时错误执行已停止
  • 4:E_PARSE:由解析器生成的编译时错误
  • 8:E_NOTICE:脚本发现了可能是错误的内容
  • 16:E_CORE_ERROR:脚本初始启动期间发生的致命错误
  • 32:E_CORE_WARNING:脚本初始启动期间未发生致命错误
  • 8191:E_ALL:所有错误和警告
set_error_handler()函数:创建myerror()函数后, 需要设置自定义错误处理程序, 因为通常情况下PHP会处理它, 但是如果用户执行自定义错误处理, 则用户必须将其设置为参数, 并将myerror函数作为字符串传递出去。
例子:
< ?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中的错误处理方法详细介绍+示例】结论:始终尝试使用"自定义错误处理"进行错误处理, 因为它将根据用户显示更多指定的消息, 这可能会对用户有所帮助。如果使用自定义错误处理无法处理错误, 则发生错误, 默认情况下将停止输出脚本, 但是如果使用自定义错误处理处理错误, 则可以在显示错误消息后继续执行脚本。

    推荐阅读