Como usar try-catch Laravel 10


Neste tutorial, será apresentado como usar try-catch no Laravel 10. 

Primeiramente, será explicado o que é try-catch. 

Em seguida, será mostrado como implementar o try-catch. 

Por fim, será apresentado como simular o erro para utilizar o try-catch e apresentar a mensagem amigável para o usuário.

Download do código fonte desenvolvido na aula: Download

Curso de Laravel: Mais Detalhes do Curso

Playlist completa sobre Laravel: Acessar

Receber as aulas gratuitas do curso de Laravel: Acessar


Para que serve o try e catch? O try e catch são usados para gerenciar exceções e erros.

Para começar, é utilizado como base o projeto da aula "Como apagar registro no banco de dados com Laravel 10".

No método "update" do projeto do link acima, é utilizado o try e catch. Se a edição for realizada corretamente, permanece no bloco try e retorna sucesso. Se ocorrer um erro, acessa o bloco catch e retorna uma mensagem de erro.

// Editar no banco de dados a conta
public function update(ContaRequest $request, Conta $conta)
{
    // Validar o formulário
    $request->validated();

    try {

        // Editar as informações do registro no banco de dados
        $conta->update([
            'nome' => $request->nome,
            'valor' => str_replace(',', '.', str_replace('.', '', $request->valor)),
            'vencimento' => $request->vencimento,
        ]);

        // Salvar log
        Log::info('Conta editado com sucesso', ['id' => $conta->id, 'conta' => $conta]);

        // Redirecionar o usuário, enviar a mensagem de sucesso
        return redirect()->route('conta.show', ['conta' => $conta->id])->with('success', 'Conta editada com sucesso');
    } catch (Exception $e) {

        // Salvar log
        Log::warning('Conta não editada', ['error' => $e->getMessage()]);

        // Redirecionar o usuário, enviar a mensagem de erro
        return back()->withInput()->with('error', 'Conta não editada!');
    }
}

Baixar o código-fonte completo do projeto.

Bom, era isso. Espero que o tutorial tenha sido útil!