Не имеет широкого блока исключений. Только перехватывайте исключения, которые вы ожидаете выбросить в этот блок, таким образом, вы можете правильно регистрировать непредвиденные исключения и исправлять любые другие ошибки в вашем коде, вместо того, чтобы скрывать их от себя.
Если вы должны сделать это, это может быть в контексте чего-то вроде:
public function store(Request $request)
{
try
{
$comment = new TicketComment();
$comment->content = $request['comment'];
$comment->user_id = Auth::user()->id;
$comment->ticket_id = $request['ticketId'];
$comment->save();
$ticket = Ticket::where('id', '=', $comment->ticket_id)->first();
$ticket->updated_at = $comment->created_at;
$ticket->update();
}
catch(Exception $e)
{
if (!($e instanceof SQLException)) {
app()->make(\App\Exceptions\Handler::class)->report($e); // Report the exception if you don't know what actually caused it
}
request()->session()->flash('unsuccessMessage', 'Failed to add comment !!!');
return redirect()->back();
}
request()->session()->flash('successMessage', 'Comment has been successfully added !!!');
return redirect()->back();
}
Таким образом, о любых непредвиденных исключениях все равно будут сообщаться, и вы сможете go просмотреть свои журналы позже. исправить любые ошибки, которые их вызывают.
В качестве напоминания, начиная с PHP 7.1, вы можете иметь объединение исключений в блоке catch ( Reference ), например,
try { }
catch (ExceptionType1|ExceptionType2 $e) {
}
Таким образом, вы можете обрабатывать исключения, которые вы знаете, вы можете обработать, и пусть Laravel обрабатывает те, которые вы не знаете, как обрабатывать.
Обратите внимание, что в коде контроллера, как правило, нет необходимости иметь блоки try-catch
, вы всегда можете использовать обработчик исключений, чтобы выполнить обратную комбинацию flash / redirect для всех необработанных исключений, если это ваш предпочтительный способ справиться с ними.