首页 > 解决方案 > 尝试块中出错时如何显示默认的laravel错误页面?

问题描述

在 laravel 8 中,我在 try 块中捕获更新命令,例如:

DB::beginTransaction();
try {
    $page->NonExistingmethod($this->requestData);
    DB::commit();
} catch (\Exception $e) {
    DB::rollback();
    return redirect()->back()->withErrors($e->getMessage());
}

事务回滚,但如何在开发模式下留下相同的 laravel 错误页面?任何重定向都不是我想看到的。

哪个决定在生产中可能是好的?

谢谢!

标签: laravel

解决方案


如果我理解正确,您想显示 Laravel 附带的堆栈跟踪视图。

然后你可以抛出一个自定义异常,比如

DB::beginTransaction();
try {
    $page->NonExistingmethod($this->requestData);
    DB::commit();
} catch (\Exception $e) {
    DB::rollback();
    throw new MyException($e->getMessage());
}

或在回滚后抛出异常

throw $e;

Laravel 将在调试模式下显示堆栈跟踪。如果调试模式关闭,它将显示 500 错误页面。


推荐阅读