【问题标题】:How to catch error and print to user如何捕获错误并打印给用户
【发布时间】:2016-06-18 16:59:08
【问题描述】:

我正在尝试打印通常出现在灰屏中的错误,但在 html 中捕获它们并显示用户使用系统。 为此,我正在使用 render 方法和资源/views/errors/error.php 文件夹上的视图,我正在执行以下操作:

public function render($request, Exception $e)
 {
   return response()->view('errors.error', [], 500);
 }

这有效地向我展示了我在 error.php html 文件中的内容,但想向用户展示捕获的实际错误。

和我一样?救命!!!

【问题讨论】:

    标签: php laravel render


    【解决方案1】:

    首先,您必须考虑是否真的想向用户显示错误详细信息。 (可能不是)。实际上,您在“灰屏”中看到的详细信息会根据您的.env 文件中APP_DEBUG 的值而有所不同。

    通常您希望向用户隐藏失败背后的原因,并显示一条非常通用的错误消息。对于 HTTP 异常,异常处理程序会为您处理:只需为您要处理的每个 http 代码创建一个刀片文件(例如resources/views/errors/404.blade.php)。

    如果您想将此用于调试目的,有更好的工具。检查错误日志是最基本的。或者在这里和那里使用dd() 函数来查看某个变量在任何时候的状态。

    如果你真的想这样做,你可以按照你的建议修改app/Exceptions/Handler.phpfile,render方法

    public function render($request, Exception $e)
    {
       return response()->view('errors.error', [
           'error_message' => $e->getMessage()
       ], $code);
    }
    

    【讨论】:

    • 是的,我完全理解,但这不会将用户重定向到出现错误的页面?
    • 抱歉,我无法理解。我在那里编写的render 函数只是呈现“错误”视图,传入异常消息,以便您可以随意显示它。
    猜你喜欢
    • 1970-01-01
    • 2023-03-10
    • 1970-01-01
    • 2011-03-05
    • 1970-01-01
    • 1970-01-01
    • 2021-10-06
    • 2012-03-14
    • 2021-05-31
    相关资源
    最近更新 更多