-1

下面我的 bootstrap.php 文件中有一些代码,当网站内的页面无法解析时,它应该显示一个漂亮的错误页面。echo 'Todo: Friendly error page';但是,在 Bugsnag 获取错误信息之前,该行一直显示。任何帮助或见解将不胜感激。

/**
 * Register the error handler
 */
$whoops = new \Whoops\Run;
if ($is_prod) {
    $whoops->pushHandler(function($e){
        echo 'Todo: Friendly error page';
    });
    $bugsnag = Bugsnag\Client::make("61a075bcdc8317eab9ed0ab86aada144");
    Bugsnag\Handler::register($bugsnag);
} else {
    $whoops->pushHandler(new \Whoops\Handler\PrettyPageHandler);
}
$whoops->register();
4

1 回答 1

1

这是因为只有一个错误处理程序可以绑定到应用程序,并且当前它绑定到 whoops,因此永远不会调用 bugsnag。

我建议使用单个错误处理程序,然后从那里调用 bugsnag,我们可以这样做。

$whoops = new \Whoops\Run;

if ($is_prod) {
    $bugsnag = Bugsnag\Client::make("61a075bcdc8317eab9ed0ab86aada144");

    $whoops->pushHandler(function($e) use($bugsnag) {
        $bugsnag->notifyException($e);
        echo 'Todo: Friendly error page';
    });
} else {
    $whoops->pushHandler(new \Whoops\Handler\PrettyPageHandler);
}
于 2017-05-04T20:14:13.147 回答