🚀 Oferta especial: 60% OFF no CrazyStack - Últimas vagas!Garantir vaga →
Módulo 1 - Aula 5

tRPC Error Handling: Tratamento Profissional

Implemente tratamento de erros profissional: códigos de status, mensagens customizadas, logging e estratégias de recuperação.

45 min
Intermediário
Error Handling

🚨 Por que tratamento de erros é fundamental?

Experiência do Usuário: Erros bem tratados mantêm a aplicação funcionando e informam o usuário adequadamente.

Debugging: Logs estruturados facilitam identificação e correção de problemas em produção.

⚡ Error Handling tRPC: Implementação Profissional

server/trpc/error-handling.ts
// 📁 server/trpc/errors.ts
import { TRPCError } from '@trpc/server';

// 🎯 Tipos de erro customizados
export class UserNotFoundError extends TRPCError {
  constructor(userId: string) {
    super({
      code: 'NOT_FOUND',
      message: 'Usuário com ID ' + userId + ' não encontrado',
      cause: 'USER_NOT_FOUND'
    });
  }
}

export class ValidationError extends TRPCError {
  constructor(field: string, message: string) {
    super({
      code: 'BAD_REQUEST',
      message: 'Erro de validação em ' + field + ': ' + message,
      cause: 'VALIDATION_ERROR'
    });
  }
}

// 📁 server/trpc/routers/user.ts
export const userRouter = router({
  getUser: publicProcedure
    .input(z.string())
    .query(async ({ input, ctx }) => {
      try {
        // 🔍 Buscar usuário
        const user = await ctx.db.user.findUnique({
          where: { id: input }
        });

        if (!user) {
          throw new UserNotFoundError(input);
        }

        return user;
      } catch (error) {
        // 📝 Log do erro
        console.error('Erro ao buscar usuário:', {
          userId: input,
          error: error.message,
          stack: error.stack
        });

        // 🚨 Re-throw para o cliente
        throw error;
      }
    }),
});

🚀 Veja em Ação!

Confira o exemplo interativo desta aula rodando em tempo real:

live-mode-link.txt
Acesse: /curso-trpc/modulo-1/aula-5/live-mode

🎉 Parabéns! Você concluiu o Módulo 1

Você agora domina os fundamentos do tRPC e está pronto para construir aplicações full-stack type-safe profissionais.

Fundamentos ✓Configuração ✓Organização ✓Validação ✓Error Handling ✓