📜  PHP的错误处理

📅  最后修改于: 2022-05-13 01:54:11.588000             🧑  作者: Mango

PHP的错误处理

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

处理PHP错误的方法:

  • 使用 die() 方法
  • 自定义错误处理

基本错误处理:使用 die()函数die()函数打印一条消息并退出当前脚本。

句法:

die( $message )

例子:




注意:运行上面的代码,如果geeks.txt文件不存在,则会显示运行时错误消息。
运行时错误:

PHP Warning: fopen(geeks.txt): failed to open stream: Permission denied 
in /home/dac923dff0a2558b37ba742613273073.php on line 2

为防止此错误,请使用 die()函数。下面是 die()函数:

例子:


注意:如果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函数作为字符串传递。

例子:


输出:

Error: [2] Division by zero 
 Now Script will end

结论:总是尝试使用自定义错误处理来进行错误处理,因为它会根据用户显示更多指定的消息,这对用户有帮助。如果使用自定义错误处理未处理错误,则发生错误,则默认情况下输出脚本将暂停,但如果使用自定义错误处理处理错误,则可以在显示错误消息后继续脚本。