【问题标题】:PHP: need some clarification about custom error and exception handlers and trigger_errorPHP:需要一些关于自定义错误和异常处理程序以及 trigger_error 的说明
【发布时间】:2016-03-11 10:06:35
【问题描述】:

问题 #1: 我有一个由set_error_handler() 注册的自定义error_handler。如果我在其中拦截E_USER_ERROR,我应该手动调用die()exit() 来结束脚本,否则它将由PHP 自动完成。

问题 #2: 我有一个由set_exception_handler() 注册的自定义异常处理程序。我应该手动调用die()exit() 来结束脚本还是由PHP 自动完成。

问题 #3: 如果我有error_reporting(0) 是否意味着我的trigger_error() 调用不会触发错误

【问题讨论】:

    标签: php error-handling exception-handling


    【解决方案1】:

    你看过说明书吗? :)

    1.) http://php.net/set-error-handler

    另请注意,如有必要,您有责任 die()。如果错误处理函数返回,脚本将继续执行导致错误的语句之后的下一条语句。

    2.) http://php.net/set-exception-handler

    调用异常处理程序后将停止执行。

    3.) http://php.net/trigger-error

    生成用户级错误/警告/通知消息。

    除非使用第二个参数,否则这将遵循您对E_USER_NOTICEerror_reporting 设置。

    【讨论】:

    • 非常感谢!关于#1和#2一切都很清楚。关于#3。所以如果我的错误报告设置为 0 不会触发E_USER_ERRORs?
    • 正确。您所做的只是手动创建错误(默认为通知)。它仍然遵循error_reporting 级别,对于0 而言,这将是禁用所有错误报告。
    • 太棒了!问 EGG 总比消化 PHP 文档好!!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-09-28
    • 1970-01-01
    • 2019-07-26
    • 2014-05-28
    • 2011-07-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多