Laravel - исключение Throw $ не перехватывается обработчиком - PullRequest
0 голосов
/ 12 октября 2018

В моем приложении Laravel 5.6 использование throw $e, по-видимому, выводит исключение непосредственно на экран и обходит Handler.php обработчик исключений.Это означает, что в процессе разработки исключение не показывается при выполнении whoops, а в производственной среде исключение не сообщается.

Когда я пишу это, я понимаю, что, возможно, неправильно использовал try / catches, но, возможно, кто-то может это подтвердить?

Мой текущий код:

    try{
        $stockLocation = StockLocation::findOrFail($request->location_id);
    } catch (\Exception $e){
        if($e instanceof ModelNotFoundException){
            throw new UserNotifyException('This stock location could not be found on the system', 404);
        }
        throw $e;
    }

Я намеревался перебросить любое исключение, которое не является «моделью не найден», и я ожидал, что оно будет обработано точно так же, какесли уловка попытки вообще не было?

Теперь я понимаю, что, наверное, я должен был написать выше:

    try{
        $stockLocation = StockLocation::findOrFail($request->location_id);
    } catch (ModelNotFoundException $e){
          throw new UserNotifyException('This stock location could not be found on the system', 404);
    }

В дополнение к этому, есть ли лучший способ обработки исключений, которыеЯ не какой, чтобы войти?В настоящее время я преобразовываю исключение в свой собственный класс исключений (UserNotifyException), а затем в Handler.php я гарантирую, что об этом не сообщается.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...