PHP 错误抛出及自定义处理

PHP 错误抛出及自定义处理

  • 定义

php中的错误抛出及自定义处理指的是允许我们自定义抛出错误并且捕捉错误并进行处理。类似于

面向对象语言中的throw 及 try...catch...

在php中主要由以下三个函数来完成抛出以及捕捉处理.

trigger_error()

set_exception_handler()

set_error_handle()
  • trigger 简介
    在php中,trigger函数可以触发任一用户级别的错误,在非面向对象编程中,可以做为一种错误提示的方式。

例如:我们编写一个e($n)的函数,而参数必须是一个整数,否则触发错误

/**
 * @param $n
 */
function e($n)
{
  if (!is_int($n)) {
      trigger_error("n is not a number", E_USER_NOTICE);
  }
}

运行结果如下:
图片描述

  • 捕捉错误OR异常(摘自PHP官方文档)

function myErrorHandler($errno, $errstr, $errfile, $errline)
{
    if (!(error_reporting() & $errno)) {
        // This error code is not included in error_reporting
        return;
    }

    switch ($errno) {
        case E_USER_ERROR:
            echo "<b>My ERROR</b> [$errno] $errstr<br />\n";
            echo "  Fatal error on line $errline in file $errfile";
            echo ", PHP " . PHP_VERSION . " (" . PHP_OS . ")<br />\n";
            echo "Aborting...<br />\n";
            exit(1);
            break;

        case E_USER_WARNING:
            echo "<b>My WARNING</b> [$errno] $errstr<br />\n";
            break;

        case E_USER_NOTICE:
            echo "<b>My NOTICE</b> [$errno] $errstr<br />\n";
            break;

        default:
            echo "Unknown error type: [$errno] $errstr<br />\n";
            break;
    }

    /* Don't execute PHP internal error handler */
    return true;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值