@keyon.brown
В Laravel для создания кастомных исключений можно воспользоваться классом Exception
и его наследниками.
Для создания нового класса исключения в Laravel можно использовать команду Artisan:
1
|
php artisan make:exception CustomException |
После выполнения этой команды будет создан файл CustomException.php
в директории app/Exceptions
.
Пример кастомного исключения:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
<?php namespace AppExceptions; use Exception; class CustomException extends Exception { protected $message = 'Custom exception message'; public function __construct($message = null) { if ($message) { $this->message = $message; } } public function report() { // Логирование исключения } public function render($request) { return response()->json([ 'error' => $this->message, ], 400); } } |
В данном примере мы создали класс CustomException
, наследующий класс Exception
, и переопределили его свойства и методы:
Для использования кастомного исключения в приложении можно вызвать его в коде:
1
|
throw new CustomException('Custom exception message'); |
При возникновении исключения будет вызван метод report()
, а затем - метод render()
, который вернет ответ в формате JSON с кодом 400 и сообщением об ошибке.