我正在使用最新版本的laravel(5.6)
现在在我的代码中,只要出现异常,laravel就会将其视为致命错误,请立即停止执行并在某些模板中显示错误消息。
但是我不想,我想处理异常并显示一些自定义错误消息
我发现了
将.env文件中的APP_DEBUG值更改为false。但这也显示了另一个 页面上显示消息“哇!有些东西想错了”;
在位于app / Exceptions中的Handler.php中,我在非报告区域中放置了一些异常。但是该应用仍在报告它们
答案 0 :(得分:0)
自定义HTTP错误页面
Laravel可轻松显示各种HTTP的自定义错误页面 状态代码。例如,如果您希望自定义错误页面 404 HTTP状态代码,创建一个resources / views / errors / 404.blade.php。 该文件将在您的所有404错误中得到处理 应用。此目录中的视图应命名为匹配 它们所对应的HTTP状态代码。 HttpException实例 由中止函数引发的异常将作为 $ exception变量。
答案 1 :(得分:0)
您确实想处理异常。将代码包装在try catch中,您可以做所有事情(例如电子邮件/闲置文件/日志)。处理完异常后,您仍然可以在catch中使用自定义的http错误页面,以便最终用户在设计精美的页面上获得友好的消息。甚至还内置了一个报表帮助器,可让您从外部登录并继续处理代码。
@Devon的上述答复是:自定义HTTP错误页面也可以为您提供真正想要的东西。
答案 2 :(得分:0)
请注意一些要点:
就像您要返回异常的自定义消息一样,在 render()中,您可以使用PHP实例比较运算符并返回自己的逻辑。
示例:
if($exception instanceof PostTooLargeException || $exception instanceof FileException){
return response()->json([
'error' => true,
'error_message' => "The file you are trying to upload exceeds the maximum limit. Please try to upload a smaller file."
],200);
}