12 de março de 2019
[vc_row][vc_column][vc_column_text]Quando o assunto é programação, você saberia responder o que é ou do que se trata o Tratamento Global de erros em páginas Razor?
[adrotate banner=”4″]
Exceções em .NET representam um erro na execução de um programa. As exceptions podem ocorrer a partir de inúmeras causas, podem ser um objeto que não foi instanciado (NullReferenceException), ou quando você tenta acessar algum elemento em uma matriz com um índice fora dos limites (IndexOutOfRangeException). Existem dezenas de exceções, e cada uma tem uma razão diferente para ser lançada, mas esse não é o foco do nosso estudo hoje.
As exceções podem ser minimizadas utilizando blocos try-catch em trechos de código que podem lançar uma exceção, validando entradas de usuário, dentre outros tratamentos. Você pode gastar horas fazendo tratamento das exceções, mas sempre haverá uma boa chance de ocorrer algumas, principalmente em sistemas mais complexos.
Um projeto razor usando .NET core nos fornece a possibilidade de configurar um middleware que será responsável por capturar qualquer exceção não tratada e lançada. Abaixo o trecho de como seria o código.
Estude também:
Amazon Cognito
Tutoriais de programação de software
Se estivermos no ambiente de desenvolvimento, a página com uma stack do erro é exibida, para ajudar na identificação do problema. Isso é muito útil no desenvolvimento do projeto, mas isso não deve ser exibido quando o site estiver no ar para o usuário. Tirando o fato de ser uma mensagem não amigável, pois o usuário não entende o que aconteceu, a página com a descrição do erro revela detalhes que podem ser usados por alguém que não tenha as melhores intenções. Então ao invés de exibir essa página podemos criar uma página de erro mais amigável, que você pode construir e adaptar como desejar.
No próximo artigo, vamos demonstrar como criarmos um log universal para guardarmos todas as exceções que foram lançadas pelo site. Com isso podemos prevenir que aconteçam novamente. Fique ligado.[/vc_column_text][/vc_column][/vc_row]
[adrotate banner=”5″]
Autor