加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

将PHP错误转换为异常

发布时间:2020-12-13 17:43:11 所属栏目:PHP教程 来源:网络整理
导读:我写过错误处理类,它将所有错误分为正常错误(通知,警告,……)和关键错误. 现在我发现将所有错误转换为异常是一种很好的做法.它还会缩短我的代码. 但是,我不知道如何处理这个…… 是否存在不会停止脚本执行的异常,以及有哪些异常?如果没有…如何改变转换后的
我写过错误处理类,它将所有错误分为正常错误(通知,警告,……)和关键错误.

现在我发现将所有错误转换为异常是一种很好的做法.它还会缩短我的代码.

但是,我不知道如何处理这个……

>是否存在不会停止脚本执行的异常,以及有哪些异常?如果没有…如何改变转换后的错误?
>将错误转换为异常是通过调用set_error_handler()并在其中抛出新的ErrorException()来实现的…接下来是什么? set_exception_handler()是自动调用的吗?

解决方法

  1. Are there exceptions that don’t stop scripts execution,and exceptions that do? If there aren’t…how to differ converted errors?

如果被捕获,异常不会停止脚本执行.要识别转换后的错误:

try {
    // ...
} catch (ErrorException $e) {
    // converted error (probably)
} catch (Exception $e) {
    // another kind of exception; this basically catches all
}

要么:

function handle_exception(Exception $e)
{
    if ($e instanceof ErrorException) {
        // converted error (probably)
    } else {
        // another kind of exception
    }
}
set_exception_handler('handle_exception');

请注意,任何代码都可以抛出ErrorException,但它只是为了在set_error_handler()注册函数中转换常规错误.

  1. Converting errors into exception is done by calling set_error_handler() and throw new ErrorException() in there…What’s next? set_exception_handler() is called automagically?

如果错误处理函数中抛出的ErrorException未在代码中的任何其他位置捕获,则将调用已注册的异常处理程序(使用set_exception_handler()设置).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读