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

Using php exception is still returning exception error page

我有以下控制器:

<?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->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

我在使用 'try' 和 'catch' 时有什么不对吗?

问题是您正在捕获无效的异常类型。 findOrFail 如果没有找到记录,则抛出 \Illuminate\Database\Eloquent\ModelNotFoundException 而你在此处捕获 NotFoundHttpException,这是完全不同的异常。

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