php错误处理

1、介绍

在 PHP 中,默认的错误处理很简单。一条错误消息会被发送到浏览器,这条消息带有文件名、行号以及描述错误的消息。

有三种不同的处理方法:

  • die函数
  • 自定义错误和错误触发器
  • 错误报告

2、 die函数

die() 函数输出一条消息,并退出当前脚本。

die(status)

如果 status 是字符串,则该函数会在退出前输出字符串。

如果 status 是整数,这个值会被用作退出状态。退出状态的值在 0 至 254 之间。退出状态 255 由 PHP 保留,不会被使用。状态 0 用于成功地终止程序。

注释:如果 PHP 的版本号大于等于 4.2.0,那么在 status 是整数的情况下,不会输出该参数。

$site = "http://www.w3school.com.cn/";
fopen($site,"r")
or die("Unable to connect to $site");

3、创建自定义错误处理器

3.1 自定义处理函数

error_function(error_level,error_message, error_file,error_line,error_context)
  • error_level 必需。为用户定义的错误规定错误报告级别。必须是一个数字。参见下面的表格:错误报告级别。
  • error_message 必需。为用户定义的错误规定错误消息。
  • error_file 可选。规定错误发生的文件名。
  • error_line 可选。规定错误发生的行号。
  • error_context 可选。规定一个数组,包含了当错误发生时在用的每个变量以及它们的值。

3.2 错误报告级别

值	常量	描述
2	E_WARNING	非致命的 run-time 错误。不暂停脚本执行。
8	E_NOTICE	run-time 通知。在脚本发现可能有错误时发生,但也可能在脚本正常运行时发生。
256	E_USER_ERROR	致命的用户生成的错误。这类似于程序员使用 PHP 函数 trigger_error() 设置的 E_ERROR。
512	E_USER_WARNING	非致命的用户生成的警告。这类似于程序员使用 PHP 函数 trigger_error() 设置的 E_WARNING。
1024	E_USER_NOTICE	用户生成的通知。这类似于程序员使用 PHP 函数 trigger_error() 设置的 E_NOTICE。
4096	E_RECOVERABLE_ERROR	可捕获的致命错误。类似 E_ERROR,但可被用户定义的处理程序捕获。(参见 set_error_handler())
8191	E_ALL	所有错误和警告。(在 PHP 5.4 中,E_STRICT 成为 E_ALL 的一部分)

3.3 设置错误处理函数

// 设置错误处理函数
set_error_handler("customError",E_USER_WARNING);
  • customError是自定义的错误处理函数

3.4 触发错误

基于trigger_error函数

trigger_error("变量值必须小于等于 1",E_USER_WARNING);

(1)参数1为字符串类型,必要参数,表示错误提示

(2)参数2为非必要参数,能够规定所触发的错误类型。

4、错误记录

在默认的情况下,根据在 php.ini 中的 error_log 配置,PHP 向服务器的记录系统或文件发送错误记录。通过使用 error_log() 函数,您可以向指定的文件或远程目的地发送错误记录。

posted @ 2023-07-24 21:09  挖洞404  阅读(9)  评论(0编辑  收藏  举报