ASP.NET - Tratamento e personalização de erros

 

É comum quando estamos usando um aplicativo Web aparecer algumas mensagens genéricas de erros que nada informam ao usuário. Para tornar a aplicação mais amigável com usuário seria interessante substituir essas mensagens por mensagens de erros personalizadas para cada categoria de erro. No ASP.Net podemos ter erros de configuração que ocorrem quando existe algum erro na estrutura do arquivo web.config; os erros de parser quando a sintaxe ASP.Net estiver mal informada; os erros de compilação e por último os erros detectados durante a execução da página (erros de run-time). Os arquivos .config são arquivos XML com base em texto. Vários arquivos .config geralmente existem em um único sistema.

 

O comum no ASP.NET é exibir páginas de erros genéricas para qualquer erro que ocorra no servidor, dessa forma a página de erro exibida não mostrará a informação detalhada de que houve um erro na aplicação, deixando o usuário perdido quanto ao erro informado. Podemos configurar nossas próprias mensagens de erros no ASP.Net através do arquivo web.config.

 

Para isso vamos criar uma aplicação web através do menu File -> New Web Site.

 

Dê um nome para a sua aplicação e clique em OK.  O Visual Studio.Net cria automaticamente o arquivo web.config. Para criar o arquivo web.config , clique com o botão direito na aplicação e adicione um novo item.

 

rmantpefig01.jpg 

Figura 1 – Adicionando um novo item a aplicação.

 

Na janela seguinte selecione Web Configuration File.

 

rmantpefig02.jpg 

Figura 2 - Adicionando um Arquivo web.config.

 

O próximo passo é localizar o arquivo web.config no diretório raiz da aplicação e incluir a tag: <customErros> ao arquivo web.config e um elemento <erros> para definir cada erro que será personalizado.

 

-->

<configuration>

    <appSettings/>

    <connectionStrings/>

    <system.web>

      <customErrors defaultRedirect="default2.aspx" mode="Off">

      </customErrors>

Listagem 1 – Tag <customErros>.

 

O atributo mode define onde página de erros será exibida. Alterando para RemoteOnly  permite que a página de erro customizada seja exibida somente quando o acesso a aplicação for feito por uma máquina remota.  Nesse exemplo, definir o atributo mode para OFF para que a página de erros seja exibida localmente e remotamente.

 

O atributo defaultRedirect define a página de erro padrão que será exibida se um erro ocorrer. Se as tags <erros> estiverem definidas, cada erro será exibido em sua página específica.

 

O próximo passo é incluir as tags <errors>  para cada erro que você deseja redirecionar. O atributo statusCode define o código do erro do servidor e o atributo redirect a página que será exibida quando o erro ocorrer.

Veja o exemplo abaixo:

 

      <customErrors defaultRedirect="default3.aspx" mode="Off">

        <error statusCode="400" redirect="Default3.aspx"/>

      </customErrors>

Listagem 2 – Erro Customizado.

 

No código acima definir um erro customizado quando o statusCod do erro for 40, ou seja, quando a página não for encontrada. Dessa forma o ASP.Net redirecionará o erro para a página customizada com o erro específico.

 

Para testar nosso exemplo, vamos forçar um erro de página não encontrada.

 

rmantpefig03.jpg 

Figura 3 – Página de Erro.

 

Chegamos ao final do artigo. Até o próximo!