使用php异常仍然返回异常错误页面

时间:2017-12-09 19:24:33

标签: php laravel exception laravel-5 exception-handling

我有以下控制器:

<?php

namespace App\Http\Controllers;


use App\WebPackage;

use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;


class WebProcessController extends Controller
{


    public function sendPayment(Request $request)
    {

       if ($request->ptitle && $request->pricetotal ){

           try {
               $product = WebPackage::findOrFail($request->ptitle);
           }
           catch (NotFoundHttpException $exception){
               die();
           }
           return $product;

       }

只是为了尝试我已经发送了一个$ request-gt; ptitle,其值id不在WebPackage模型中。

据我所知,当出现错误异常时,die()函数应该可以工作。 但仍显示错误页面:

Sorry, the page you are looking for could not be found.

2/2
NotFoundHttpException in Handler.php line 113:
No query results for model [App\WebPackage] 20

使用&#39;试试&#39;我做了什么错并且&#39;赶上&#39; ?

1 个答案:

答案 0 :(得分:2)

问题是您正在捕获无效的异常类型。 findOrFail如果找不到任何记录,则会引发\Illuminate\Database\Eloquent\ModelNotFoundException NotFoundHttpException,这是完全不同的例外情况。

此外,如果您只想隐藏用户的错误,则应考虑在Handler中处理异常或在APP_DEBUG文件中将false设置为.env