Pular para o conteúdo

Manipulação de mensagens de erro e erros de parsing

O Zod permite uma manipulação refinada das mensagens de erro, tornando mais fácil personalizar as respostas de erro para o usuário final. Você pode ajustar mensagens padrão ou fornecer mensagens personalizadas para casos específicos.

Mensagens de Erro Personalizadas

Para adicionar uma mensagem personalizada a um campo, você pode usar o método .refine() ou diretamente ao definir as regras do schema.

Exemplo 1: Personalizando mensagens de erro

const ageSchema = z
.number()
.min(18, { message: 'A idade mínima permitida é 18 anos.' });
try {
ageSchema.parse(16); // Inválido
} catch (err) {
console.error('Erro de validação:', err.errors); // Exibe a mensagem personalizada
}

Nesse exemplo, a validação falha e a mensagem de erro personalizada é exibida ao invés da mensagem padrão.

Capturando e Tratando Erros de Parsing

Quando o Zod falha na validação, ele lança uma exceção com detalhes sobre o erro. Você pode capturar esses erros e tratá-los como achar necessário.

Exemplo 2: Capturando erros de parsing

const userSchema = z.object({
name: z.string(),
age: z.number(),
});
const invalidData = { name: 'John', age: 'não é um número' }; // Dado inválido
try {
userSchema.parse(invalidData);
} catch (err) {
if (err instanceof z.ZodError) {
console.error('Erros de validação:', err.errors);
}
}

Aqui, capturamos os erros lançados pelo Zod e acessamos o array err.errors para obter detalhes específicos de onde e por que a validação falhou.

Conclusão

O Zod facilita não só a validação de dados, mas também o controle detalhado de mensagens de erro e tratamento de erros de parsing, proporcionando uma experiência mais amigável e eficaz para o desenvolvedor e o usuário final.