Rastreamento, depuração e tratamento de erros em nível de página Asp.Net [exemplo]

Em qualquer aplicativo, erros ocorrerão durante o processo de desenvolvimento. É importante ser capaz de descobrir erros numa fase inicial.

No Visual Studio, é possível fazer isso para aplicativos ASP.Net. Visual Studio é usado para depuração e possui técnicas de tratamento de erros para ASP.Net.

O que é depuração em ASP.NET?

A depuração é o processo de adicionar pontos de interrupção a um aplicativo. Esses pontos de interrupção são usados ​​para pausar a execução de um programa em execução. Isso permite que o desenvolvedor entenda o que está acontecendo em um programa em um determinado momento.

Vejamos um exemplo de programa. O programa exibe uma string “Estamos depurando” para o usuário. Suponha que quando executamos a aplicação, por algum motivo, a string não seja exibida. Para identificar o problema, precisamos adicionar um ponto de interrupção. Podemos adicionar um ponto de interrupção à linha de código que exibe a string. Este ponto de interrupção irá pausar a execução do programa. Neste ponto, o programador pode ver o que possivelmente está errado. O programador retifica o programa de acordo.

Aqui no exemplo, usaremos nosso 'DemoApplication' que foi criado nos capítulos anteriores. No exemplo a seguir veremos

  • Como fazer o aplicativo de demonstração exibir uma string.
  • Como adicionar pontos de interrupção a um aplicativo.
  • Como depurar o aplicativo usando este ponto de interrupção.

Como depurar um aplicativo em ASP.NET

Abaixo estão as etapas para fazer uma aplicação de demonstração, adicionar pontos de interrupção e depurar em ASP.Net:

Etapa 1) Abra o aplicativo no Visual Studio
Vamos primeiro garantir que nosso aplicativo Web esteja aberto no Visual Studio. Certifique-se de que DemoApplication esteja aberto no Visual Studio.

Depurar um aplicativo em ASP.NET

Etapa 2) Agora abra o arquivo Demo.aspx.cs e adicione a linha de código abaixo.

  • Estamos apenas adicionando a linha de código Response.Write para exibir uma string.
  • Portanto, quando o aplicativo for executado, ele deverá exibir a string “Estamos depurando” no navegador da web.

Depurar um aplicativo em ASP.NET

namespace DemoApplication
{  
  public partial class Demo : System.Web.UI.Page  
		{  
		  protected void Page_Load(object sender, EventArgs e)  
		  {
		    Response.Write("We are debugging"); 
		  }
		}
}

Etapa 3) Adicione um ponto de interrupção ao aplicativo
Um ponto de interrupção é um ponto no Visual Studio onde você deseja que a execução do programa pare.

Depurar um aplicativo em ASP.NET

  1. Para adicionar um ponto de interrupção, você precisa clicar na coluna onde deseja inserir o ponto de interrupção. Portanto, em nosso caso, queremos que nosso programa pare na linha de código “Response.Write”. Você não precisa adicionar nenhum comando para adicionar um ponto de interrupção. Você só precisa clicar na linha na qual deseja adicionar um ponto de interrupção.
  2. Feito isso, você notará que o código fica marcado em vermelho. Além disso, uma bolha vermelha aparece na coluna próxima à linha de código.

Nota: - Você pode adicionar vários pontos de interrupção em um aplicativo

Etapa 4) Execute o aplicativo no modo de depuração
Agora você precisa executar seu aplicativo usando o modo de depuração. No Visual Studio, escolha a opção de menu Debug->Start Debugging.

Depurar um aplicativo em ASP.NET

Resultado:-

Depurar um aplicativo em ASP.NET

Ao executar todas as etapas corretamente, a execução do programa será interrompida. O Visual Studio irá para o ponto de interrupção e marcará a linha de código em amarelo.

Agora, se o programador achar que o código está incorreto, a execução pode ser interrompida. O código pode então ser modificado de acordo. Para continuar com o programa, o programador precisa clicar no botão F5 do teclado.

O que é rastreamento em ASP.NET?

O rastreamento do aplicativo permite ver se alguma página solicitada resulta em erro. Quando o rastreio está ativado, uma página extra chamada trace.axd é adicionada ao aplicativo. (Veja imagem abaixo). Esta página está anexada ao aplicativo. Esta página mostrará todas as solicitações e seus status.

Rastreamento em ASP.NET

Como habilitar o rastreamento para um aplicativo em ASP.NET

Vejamos como ativar o rastreamento para um Aplicativo ASP.Net:

Passo 1) Vamos trabalhar em nosso 'DemoApplication'. Abra o arquivo web.config no Solution Explorer.

Habilitar rastreamento para um aplicativo em ASP.NET

Passo 2) Adicione a linha de código abaixo ao arquivo Web.config.

A instrução trace é usada para ativar o rastreamento do aplicativo.

  • O 'requestLimit' na instrução trace é usado. Ele especifica o número de solicitações de página que devem ser rastreadas.
  • Em nosso exemplo, damos um limite de 40. Damos limite porque um valor mais alto degradará o desempenho do aplicativo.

Habilitar rastreamento para um aplicativo em ASP.NET

<?xml version="1.0" encoding="utf-8"?>
<! --
For more information on how to configure your ASP.NET application, please visit http://go.microsoft.com/fwlink/?LinkId=169433 
-->
<configuration>
	<system.web>
		<compilation debug="true" targetFramework="4.0" />
		<httpRuntime targetFramework="4.0” />
		
		 <trace enable="true" pageOutput="false" requestLimit="40" localOnly="false"/>
		
	</system.web>
</configuration>

Execute o “demoapplication” no Visual Studio.

Resultado:-

Habilitar rastreamento para um aplicativo em ASP.NET

Se você agora navegar até o URL – http://localhost:53003/trace.axd , você verá as informações de cada solicitação. Aqui você pode ver se ocorre algum erro em um aplicativo. Os seguintes tipos de informações são mostrados na página acima

  1. A hora da solicitação da página da web.
  2. O nome da página da web que está sendo solicitada.
  3. O código de status da solicitação da web. (o código de status 200 significa que a solicitação foi bem-sucedida).
  4. A opção Exibir detalhes permite visualizar mais detalhes sobre a solicitação da web. Um exemplo disso é mostrado abaixo. Uma informação detalhada importante fornecida são as informações do cabeçalho. Esta informação mostra quais são as informações enviadas no cabeçalho de cada solicitação web.

Habilitar rastreamento para um aplicativo em ASP.NET

Rastreamento de nível de página em ASP.NET

Rastreamento de nível de página em ASP.Net mostra todas as informações gerais sobre uma página da web quando ela está sendo processada. Isto é útil na depuração se uma página não funcionar por algum motivo. O Visual Studio fornece informações detalhadas sobre vários aspectos da página e informações como o tempo para cada método chamado na solicitação da web.

Por exemplo, se seu aplicativo Web estiver apresentando problemas de desempenho, essas informações poderão ajudar na depuração do problema. Essas informações são exibidas quando o aplicativo é executado no Visual Studio.

Como habilitar o rastreamento no nível da página no ASP.NET

Vejamos como habilitar o rastreamento em nível de página para um aplicativo ASP.Net:

Passo 1) Vamos trabalhar em nosso DemoApplication. Abra o arquivo demo.aspx no Solution Explorer

Rastreamento de nível de página em ASP.NET

Passo 2) Adicione a linha de código abaixo para ativar o rastreamento de página. Na declaração da página, basta anexar a linha Trace=”true”. Esta linha de código permitirá o rastreamento no nível da página.

Rastreamento de nível de página em ASP.NET

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Demo.aspx.cs" Inherits="DemoApplication.Demo" %>

	<!DOCTYPE html>
<html xmlns="http://www.w3.ore/1999/xhtml">
<head runat="server">
	<title></title>
</head>	
	<body>
	  <form id="form1" runat="server”>
	  </form>
</body>
</html>

Execute o aplicativo no Visual Studio.

Resultado:-

Rastreamento de nível de página em ASP.NET

Agora, quando a página Demo.aspx for exibida, você obterá muitas informações sobre a página. Informações como o tempo para cada aspecto do ciclo de vida da página são exibidas nesta página.

Tratamento de erros: exibindo uma página de erro personalizada

In ASP.Net, você poderá exibir páginas de erro personalizadas para os usuários. Se um aplicativo contiver algum tipo de erro, uma página personalizada exibirá esse erro ao usuário.

Em nosso exemplo, primeiro adicionaremos uma página HTML. Esta página exibirá uma string para o usuário “Estamos investigando o problema”. Em seguida, adicionaremos algum código de erro à nossa página demo.aspx para que a página de erro seja mostrada.

Vamos seguir as etapas mencionadas abaixo

Passo 1) Vamos trabalhar em nosso DemoApplication. Vamos adicionar uma página HTML ao aplicativo

  1. Clique com o botão direito do mouse no DemoApplication no Solution Explorer
  2. Escolha a opção de menu 'Adicionar' -> Página HTML

Tratamento de erros em ASP.Net

Passo 2) Na próxima etapa, precisamos fornecer um nome para a nova página HTML.

  1. Forneça o nome como 'ErrorPage'.
  2. Clique no botão 'OK' para prosseguir.

Tratamento de erros em ASP.Net

Passo 3) A página de erro será aberta automaticamente no Visual Studio. Se você for ao Solution Explorer, verá o arquivo adicionado.

Tratamento de erros em ASP.Net

Adicione a linha de código “Estamos investigando o problema” à página HTML. Você não precisa fechar o arquivo HTML antes de fazer a alteração no arquivo web.config.

Tratamento de erros em ASP.Net

<!DOCTYPE html>
<html xmlns="http://www.w3.ore/1999/xhtml">
<head runat="server">
	<title></title>
</head>	
	<body>
	  We are looking into the problem
	</body>
</html>

Passo 4) Agora você precisa fazer uma alteração no arquivo web.config. Essa alteração notificará que sempre que ocorrer um erro no aplicativo, a página de erro personalizada precisará ser exibida.

A tag 'customErrors' permite definir uma página de erro personalizada. A propriedade defaultRedirect é definida como o nome da nossa página de erro personalizada criada na etapa anterior.

Tratamento de erros em ASP.Net

<configuration>
	<system.web>
		<compilation debug="true" targetFramework="4.0" />
		<httpRuntime targetFramework="4.0” />
		
		 <customErrors mode="On" defaultRedirect="ErrorPage.html">
</customErrors>

		
	</system.web>
</configuration>

Passo 5) Agora vamos adicionar algum código defeituoso à página demo.aspx.cs. Abra esta página clicando duas vezes no arquivo no Solution Explorer

Tratamento de erros em ASP.Net

Adicione o código abaixo ao arquivo Demo.aspx.cs.

  • Essas linhas de código são projetadas para ler as linhas de texto de um arquivo.
  • O arquivo deve estar localizado na unidade D com o nome ‘Example.txt’.
  • Mas na nossa situação, esse arquivo realmente não existe. Portanto, esse código resultará em um erro quando o aplicativo for executado.

Tratamento de erros em ASP.Net

namespace DemoApplication
{  

  public partial class Demo : System.Web.UI.Page  
		{  
		  protected void Page_Load(object sender, EventArgs e)  
		  {
		   String path = @"D:\Example.txt";
		   string[] lines;
		   lines = File.ReadAllLines(path);
		  }
		}
}

Agora execute o código em Visual Studio e você deve obter a saída abaixo.

Resultado:-

Tratamento de erros em ASP.Net

A página acima mostra que um erro foi acionado no aplicativo. Como resultado, a página Error.html é exibida ao usuário.

Exceção não tratada do ASP.NET

Mesmo no melhor dos cenários, pode haver casos de erros que simplesmente não são previstos.

Suponha que um usuário navegue para a página errada no aplicativo. Isso é algo que não pode ser previsto. Nesses casos, o ASP.Net pode redirecionar o usuário para errorpage.html.

Vejamos um exemplo sobre isso.

  • Usaremos nosso mesmo 'DemoApplication' que contém o Errorpage.html.
  • E tentaremos visualizar uma página web que não existe em nossa aplicação.
  • Devemos ser redirecionados para nossa página ErrorPage.html neste caso. Vamos ver os passos para conseguir isso.

Passo 1) Vamos trabalhar em nosso DemoApplication. Abra o arquivo Global.asax.cs no Solution Explorer

Exceção não tratada do ASP.NET

NOTA: o arquivo global.asax.cs é usado para adicionar código que será aplicável em todas as páginas do aplicativo.

Passo 2) Adicione a linha de código abaixo ao global.asax.cs. Essas linhas serão usadas para verificar erros e exibir a página ErrorPage.html de acordo.

Exceção não tratada do ASP.NET

namespace DemoApplication
{  

  public partial class Demo : System.Web.UI.Page  
		{  
		  protected void Application_Error(object sender, EventArgs e)  
		  {
		?    HttpException lastErrorWrapper = Server.GetLastError() as HttpException;

			if(lastErrorWrapper.GetHttpCode() == 404)
			Server.T ransfer("~/ErrorPage.html");
		  }
		}
}

Explicação do código: -

  1. A primeira linha é o manipulador de eventos Application_Error. Este evento é chamado sempre que ocorre um erro em um aplicativo. Observe que o nome do evento deve ser 'Application_Error'. E os parâmetros devem ser os mostrados acima.
  2. A seguir, definimos um objeto do tipo de classe HttpException. Este é um objeto padrão que conterá todos os detalhes do erro. Em seguida, usamos o método Server.GetLastError para obter todos os detalhes do último erro que ocorreu na aplicação.
  3. Em seguida, verificamos se o código de erro do último erro é 404. (O código de erro 404 é o código padrão retornado quando um usuário navega para uma página que não foi encontrada). Em seguida, transferimos o usuário para a página ErrorPage.html se o código de erro corresponder.

Agora execute o código no Visual Studio e você deverá obter a saída abaixo

Resultado:-

Navegue pela página http://localhost:53003/Demo1.aspx . Lembre-se que Demo1.aspx não existe em nossa aplicação. Você obterá então a saída abaixo.

Exceção não tratada no ASP.NET

A página acima mostra que um erro foi acionado no aplicativo. Como resultado, a página Error.html é exibida ao usuário.

Registro de erros do ASP.NET

Ao registrar erros do aplicativo, ajuda o desenvolvedor a depurar e resolver o erro posteriormente. ASP.Net tem a facilidade de registrar erros. Isso é feito no arquivo Global.asax.cs quando o erro é capturado. Durante o processo de captura, a mensagem de erro pode ser gravada em um arquivo de log.

Vejamos um exemplo sobre isso.

  • Usaremos nosso mesmo DemoApplication que possui o Errorpage.html.
  • E tentaremos visualizar uma página web que não existe em nossa aplicação.
  • Devemos ser redirecionados para nossa página ErrorPage.html neste caso.
  • E, ao mesmo tempo, gravaremos a mensagem de erro em um arquivo de log. Vamos ver os passos para conseguir isso.

Passo 1) Vamos trabalhar em nosso DemoApplication. Abra o arquivo Global.asax.cs no Solution Explorer

Registro de erros do ASP.NET

Passo 2) Adicione a linha de código abaixo ao global.asax.cs. Ele verificará se há erros e exibirá a página ErrorPage.html de acordo. Também ao mesmo tempo, registraremos os detalhes do erro em um arquivo chamado ‘AllErrors.txt’. Para nosso exemplo, escreveremos um código para que esse arquivo seja criado na unidade D.

Registro de erros do ASP.NET

namespace DemoApplication
{  

  public partial class Demo : System.Web.UI.Page  
		{  
		  protected void Application_Error(object sender, EventArgs e)  
		  {
		   Exception exc = Server.GetLastError();
		   String str ="";
		   str = exc.Message;
		   
		   String path = @"D:\AllErrors.txt";
		  File.WriteAllTest(path,str);
		  Server.trrasfer("~/ErrorPage.html");
		  }
		}
}

Explicação do código: -

  1. A primeira linha é obter o próprio erro usando o método 'Server.GetLastError'. Isto é então atribuído à variável 'exc'.
  2. Em seguida, criamos uma variável de string vazia chamada 'str'. Recebemos a mensagem de erro real usando a propriedade ‘exc.Message’. A propriedade exc.Message terá a mensagem exata para qualquer erro que ocorra durante a execução da aplicação. Isso é então atribuído à variável string.
  3. A seguir, definimos o arquivo chamado ‘AllErrrors.txt’. É para onde todas as mensagens de erro serão enviadas. Escrevemos a string 'str' que contém todas as mensagens de erro neste arquivo.
  4. Por fim, transferimos o usuário para o arquivo ErrorPage.html.

Resultado:-

Navegue pela página http://localhost:53003/Demo1.aspx . Lembre-se que Demo1.aspx não existe em nossa aplicação. Você obterá então a saída abaixo.

Registro de erros do ASP.NET

E ao mesmo tempo, se você abrir o arquivo ‘AllErrors.txt’ você verá as informações abaixo.

Registro de erros do ASP.NET

A mensagem de erro pode então ser repassada ao desenvolvedor posteriormente para fins de depuração.

Resumo

  • ASP.Net tem a facilidade de realizar depuração e tratamento de erros.
  • A depuração pode ser obtida adicionando pontos de interrupção ao código. Em seguida, executa-se a opção Iniciar com depuração no Visual Studio para depurar o código.
  • Rastreamento é a facilidade de fornecer mais informações durante a execução do aplicativo. Isso pode ser feito no nível do aplicativo ou da página.
  • No nível da página, o código Trace=true precisa ser adicionado à diretiva da página.
  • No nível do aplicativo, uma página extra chamada Trace.axd é criada para o aplicativo. Isso fornece todas as informações de rastreamento necessárias.