Criação da classe CustomError: incluindo os campos code, message, e additionalInfo. Agora, os erros são processados e retornados com a estrutura definida na classe CustomError.
Tratamento de casos específicos: Adicionados tratamentos para os seguintes cenários de erro: