Índice
Quando estamos construindo um aplicativo com ASP.NET MVC e estamos fazendo isso usando AJAX Devemos tomar cuidado especial ao examinar os erros que nosso programa pode retornar.Quando uma solicitação falha, obteremos um erro de servidor 500 o que não é uma coisa boa para o usuário ver ou talvez recebamos uma mensagem com o rastreamento de erro de ASP.NET que se não o capturarmos antes que possa ser visto de fora e um usuário mal-intencionado possa obter dados para usá-lo e atacar nosso site.
Para evitar maiores problemas quando nosso aplicativo retorna um erro, devemos trabalhar para tratá-los como exceções, para que antes que o erro ocorra, nosso aplicativo possa saber disso e lançar uma mensagem mais amigável que não comprometa nossa segurança.
UMA exceção ocorre quando uma parte do nosso código tenta realizar uma ação e falha, seja tentando consultar dados inexistentes ou porque não validamos alguma entrada de dados do usuário, se estivermos usando AJAX Podemos obter um erro 500, mas também se isso não acontecer e um dado errôneo chegar ao nosso controlador, podemos obter um rastreamento de erro como o que vemos na imagem a seguir:
As rastros de erro Eles raramente oferecem uma quantidade de informação útil para o desenvolvedor e se não limparmos o que vai mostrar, podemos comprometer a segurança do site filtrando os dados de configuração de nosso aplicativo ou de nosso servidor.
Para evitar todos os problemas que podem ser gerados quando ocorre um erro no ASP.NET podemos lidar com erros como exceções e para isso podemos capturar o erro e enviar uma mensagem personalizada ou simplesmente enviar uma resposta de que a página que você está procurando não existe.
O que usarPara fazer isso, podemos usar o método HttpResponseException que nos permite passar como parâmetro um Código HTTP como página 404 não encontrada.
Na imagem a seguir, vemos um código que usa o método mencionado para lidar com a exceção, vejamos:
PROLONGAR
Aqui o que acontece é bastante simples, primeiro procuramos o elemento pelo id, caso ele retorne vazio ou inexistente, para nosso exemplo validamos com null, vamos estabelecer uma mensagem de erro, com o método HttpResponseException definimos um código de não encontrado e preparamos uma mensagem customizada, finalmente lançamos essa mensagem.Graças a isto evitamos enviar uma resposta nula ou vazia para nosso aplicativo o que poderia ter feito com que ele quebrasse em algum ponto e exibisse um erro incorretamente, também enviamos uma mensagem mais amigável ao usuário informando por que sua consulta não retornou resultados.
Ao obter uma mensagem personalizada, também podemos dar informações mais específicas que um desenvolvedor pode usar, é mais fácil saber que o produto não existe, do que ter que revisar um rastreamento de 100 linhas para descobrir o mesmo.
Terminamos o tutorial aprendendo um pouco mais sobre os riscos de não tratar os erros, bem como aprendendo a tratá-los tratando-os como exceções.