Neste artigo veremos como realizar o tratamento de erros em aplicações ASP .NET Core MVC. |
Continuando a primeira parte do artigo veremos agora como configurar páginas de código de status.
Nota: Vamos usar o mesmo projeto criado no artigo anterior.
Já viemos que por padrão o template padrão para a aplicação ASP .NET Core MVC não fornece uma página de código de status detalhada para código de status HTTP como 404. Para isso temos que configurar o middleware de páginas de código de status.
O middleware StatusCodePages lida com os códigos de status retornados pelo aplicativo que estão entre 400 e 599 e não possuem um body.
Existem três extensões diferentes para o middleware disponível.
app.UseStatusCodePagesWithReExecute("/Error/{0}");O método Configure deve ficar assim:
Usamos o espaço reservado {0} ao definir a rota de erro, e ele será preenchido com o código de status que acionou o middleware; podemos então pegar esse valor em uma Action no controlador ErrosController.
Da mesma forma que o middleware ExceptionHandler, o middleware StatusCodePages preenche um objeto para fornecer mais informações sobre o problema que ocorreu.
Agora podemos solicitar um IStatusCodeExecuteFeature da coleção Features das requisições atuais e com isso podemos acessar 3 propriedades:
Isso me permite acessar a rota que acionou o código de status junto com quaisquer dados de querystring que possam ser relevantes. A seguir atribuimos os dados ao ViewBag para exibir em uma view.
Observe que utilizamos uma única Action para tratar todos os código de status. Entretanto você pode também definir Actions diferentes para diferentes códigos de status.
Para testar altere a variável de ambiente para o ambiente de produção e em HomeController inclua o código abaixo para a Action Contact:
public
IActionResult Contact() { ViewData["Message"] = "Your contact page."; Response.StatusCode = 404; return View("PaginaNaoEncontrada"); } |
Executando o projeto e clicando no menu Contact teremos o seguinte resultado:
Assim apresentamos algumas alternativas bem simples que você pode usar para fazer o tratamento de erros globais em sua aplicação ASP .NET Core MVC.
A utilização dos middlewares de tratamento de erros do MVC é o meio mais recomendado a ser usado para tratar exceções em suas aplicações, mas existem situações nas quais você vai precisar ter acesso ao contexto do MVC, e, para isso podemos usar os filtros de exceção que iremos abordar em outro artigo.
Pegue o código do projeto aqui: AspCoreMvc_TrataExceptions.zip
"Não pergunteis,
pois, que haveis de comer, ou que haveis de beber, e não
andeis inquietos."
"Porque as nações do mundo buscam todas essas coisas;
mas vosso Pai sabe que precisais delas."
"Buscai antes o reino de Deus, e todas estas coisas vos
serão acrescentadas."
Lucas 12:29-31
Veja os
Destaques e novidades do SUPER DVD Visual Basic
(sempre atualizado) : clique e confira !
Quer migrar para o VB .NET ?
Quer aprender C# ??
Quer aprender os conceitos da Programação Orientada a objetos ? Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ? |
Gostou ? Compartilhe no Facebook Compartilhe no Twitter
Referências:
Super DVD Vídeo Aulas - Vídeo Aula sobre VB .NET, ASP .NET e C#
ASP .NET Core - Criando uma aplicação com Angular 2 - Macoratti.net
ASP .NET Core - Criando uma aplicação Web no ... - Macoratti.net
ASP .NET Core - Iniciando com ASP .NET Core MVC e ... - Macoratti
ASP .NET Core - Implementando a segurança com ... - Macoratti