Теперь, что я обычно делаю при написании кода, это что-то вроде этого
function changeBookAuthor(int $id, string $newName){ if(!$newName){ throw new MyAppException('No author name was provided'); } $book = Books::find($id); if(!$book){ throw new MyAppException('The provided book id could not be found'); } }
в документе laravel мы видим:
https://laravel.com/docs/5.4/errors
public function report(Exception $exception) { if ($exception instanceof CustomException) { // } return parent::report($exception); }
Теперь как правильно обработать исключение? все они являются одним и тем же исключением, и у них нет никакого кода. Должен ли я предоставить код ошибки?
проблема с исключением php заключается в том, что они используют целые числа. Довольно раздражает имхо. Лучше было бы 'changeauthor_bookid_notfound'
как код вместо случайного числа. Должен ли я создавать класс исключения для каждого отдельного исключения? например, не повторно использовать MyAppException
которое кажется немного утомительным. У меня было бы триллион классов.
Теперь, если для специального исключения я хочу специальной обработки, с моим кодом, я не могу легко это сделать. У меня нет кода для проверки (например, $exception->code == 3331 then do special
), и у меня нет настраиваемых классов исключений
что является доказанным хорошим надежным способом справиться с этим делом? код, новый класс при каждой ошибке, что-то еще вместе?
и если предоставить код, что это хороший способ сделать это?