何时调用restore_error_handler()?

时间:2019-01-08 15:58:47

标签: php exception error-handling

这困扰了我一段时间。

当我调用set_error_handler()时,错误,警告和通知会路由到我的处理程序,而当我调用restore_error_handler()时,将恢复以前定义的处理程序。但是,在调用exception之前抛出restore_error_handler()会发生什么?

我在一个类中定义了以下内容:

function do_something() {
    set_error_handler([$this, 'convert_errors_to_exceptions']);

    //stuff that may trigger error, e.g.
    trigger_error('testing an error');

    //will this actually ever be called?
    restore_error_handler();
}


public function convert_errors_to_exceptions($num, $message, $file, $line) {
    //if error reporting turned off
    if (!(error_reporting() & $num)) return false;
    //convert to exception - then what happens?
    throw new Exception("Error: $message in $file on line $line");
    return true;
}

如果触发restore_error_handler(),是否会调用error?如果我想让我以前的处理程序实际处理restore_error_handler()本身,我是否必须在抛出exception之前立即调用exception

推车/马匹问题!

0 个答案:

没有答案