Многие разработчики сталкиваются с исключениями в процессе разработки, и процесс во многом один и тот же: захват, а затем обработка, и на самом деле это так. Но в этой статье не предполагается слишком много говорить о принципах ошибок и аномалий, а только из laravel
Автономный Исключение
Начните с того, как лучше справляться с сообщениями об ошибках.
ненормальный
Давайте начнем с простого примера. ларавель
Если одна Модель
Если вы не можете найти или не делаете этого, легко создать исключение. Упс, что-то пошло не так
И так далее. Это просто в APP_DEBUG=false
В этом случае это не дает пользователям больше полезной информации.
User::findOrFail(1);
findOrFail
Метод Модель
Если нет, он покажет: Извините, страница, которую вы ищете, не найдена.
。 Это один из 404
Страницы с ошибками всегда должны возвращаться таким образом, если мы хотим узнать больше полезной информации?
попробуй…поймай
Мне также нравится использовать его в своей работе. попробуйте поймать
Чтобы справиться с исключениями, которые могут возникнуть, также рекомендуется это сделать. Преимущество состоит в том, чтобы вовремя улавливать непредсказуемые ошибки и предоставлять пользователям лучший опыт. Обычный демонстрационный
Следующим образом
try { $user = User::findOrFail(1); } catch (ModelNotFoundException $exception) { return back()->withError($exception->getMessage())->withInput(); }
Мы можем сделать то же самое:
if (! User::find(1)) { throw new UserNotFoundException('...', 404); }
Пользовательское исключение
Laravel
Фреймворк позволяет нам настраивать исключение
Выполнение заказов
php artisan make:exception UserNotFoundException
Система автоматически попадет в Исключения
Создайте каталог Исключение UserNotFoundException
Класс, этот класс наследует Исключение
Это дает нам возможность играть свободно.
namespace App\Exceptions; use Exception; class UserNotFoundException extends Exception { public function render($request, $e) { if ($request->expectsJson()) { // If it's an Ajax request... } return redirect()->to('...'); } }
Ненормальность суждения
пребывание Исключения
Среднее Handle.php
В документе мы видим один. Метод render ()
, вот где мы оцениваем пользовательские исключения
// Handle.php if ($exception instanceof UserNotFoundException) { return $exception->render($exception, $request); }
Как вы можете видеть, нам просто нужно определить, является ли вызванное исключение UserNotFoundException
Примеров достаточно. Находясь в классе UserNotFoundException
, мы также можем настроить формат возвращаемых данных и код состояния и так далее. В своей работе я лично предпочитаю создавать некоторые пользовательские классы исключений, которые также будут хорошо управляться.