Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

quitZAUMMM

Tratamento de erros em ASP

Recommended Posts

Algo que acontece com ASP e com outras linguagens é o fato de, mesmo criando um excelente roteiro de testes, sempre existe uma brecha na programação que pode gerar um erro. A idéia desse artigo é permitir que o administrador do site seja informado do erro assim que o mesmo ocorrer.

 

O IIS permite redirecionar o usuário para determinadas páginas para que o mesmo não veja o erro em si, e sim uma página personalizada do erro. Nas propriedades do site, existe uma aba chamada Erros Personalizados. Localize o Erro http de código 500 e edite-o para ser redirecionado para a o caminho /500.asp. Esse arquivo 500.asp ficará na raiz do seu site.

 

Nesse arquivo 500.asp, podemos identificar o erro e algumas variáveis que podem ser úteis para a correção.

 

O método GetLastError nos retorna um objeto com o último erro de programação ocorrido no site. Segue o código para manipular o objeto de erro.

 

Set objError = Server.GetLastError()

 

Esse objeto de erro possui alguns atributos tais como:

 

ASPCode - Retorna o código do erro gerado pelo IIS

 

ASPDescription - Retorna uma descrição detalhada do erro. Alguns erros não possuem ASPDescription

 

Category - Categoria do erro, se foi gerado por erro na linguagem, erro em um objeto, etc.

 

Column - Retorna a coluna do erro

 

Line - Retorna a linha do erro

 

Description - Retorna a descrição do erro

 

File - Retorna o arquivo onde deu o erro

 

Number - Retorna o código de erro do COM

 

Source - Retorna o código da linha que deu o erro

 

Geralmente as informações mais importantes são as descrições, o arquivo e a linha que gerou o erro. Mas também é muito importante saber algumas variáveis do servidor no momento do erro. São obtidas através do REQUEST.SERVERVARIABLES.

 

Para saber os parâmetros (QueryString) que estão na pagina no momento do erro, basta escrever Request.ServerVariables("QUERY_STRING"). Segue no final do artigo lista completa das variáveis.

 

Mas você deve estar se perguntando: como vou imprimir isso na tela que o usuário foi redirecionado sem que o mesmo tenha essas informações? Você pode adotar duas soluções: ou exibir ocultamente no código fonte como comentário JavaScript ou enviar um e-mail contendo as informações que julgar útil. Eu sugiro usar as duas soluções, para que fique fácil encontrar os erros em tempo de desenvolvimento também.

 

Request.ServerVariables

 

ALL_HTTP

 

Contém a lista inteira de cabeçalho fora do padrão do formulário HTTP_NAME: valor.

 

ALL_RAW

 

Similar ao ALL_HTTP, exceto por aparecer apenas quando elas são recebidas sem o prefixo HTTP e outro formato.

 

APPL_MD_PATH

 

Contém o caminho lógico do arquivo.

 

APPL_PHYSICAL_PATH

 

Contém o caminho físico do arquivo.

 

AUTH_PASSWORD

 

Uma senha informada se a autenticação básica é usada.

 

AUTH_TYPE

 

Tipo de autenticação de segurança que foi usada.

 

AUTH_USER

 

Nome do usuário autenticado.

 

CERT_COOKIE

 

Texto contendo o identificador único para a estação cliente certificada.

 

CERT_FLAGS

 

O primeiro flag (sinalizador) é configurado se uma estação cliente certificada está presente.O segundo flag é configurado se o Authority Certificate (Certificado de Autoridade) é de origem confiável.

 

CERT_ISSUER

 

Emissor de certificados de estação do cliente.

 

CERT_KEYSIZE

 

Número de bits de chave de segurança SSL

 

CERT_SECRETKEYSIZE

 

Número de bits de chave de segurança SSL para o servidor.

 

CERT_SERIALNUMBER

 

Número de série do certificado do cliente.

 

CER_SERVER_SUBJECT

 

Campo assunto para o certificado do servidor.

 

CERT_SUBJECT

 

Campo assunto para o certificado da estação do cliente.

 

CONTENT_LENGHT

 

Números de bytes informados pela estação do cliente enviado para o servidor com a requisição.

 

CONTENT_TYPE

 

Tipo de requisição Feita.

 

GATEWAY_INTERFACE

 

Versão CGI no formulário de número de versão/CGI.

 

HTTPS

 

Contém o texto on se este é uma requisição segura e off se não é.

 

HTTPS_KEYSIZE

 

Número de bits do SSL usado com a requisição.

 

HHTPS_SECRETKEYSIZE

 

Número de bits usado no término do servidor.

 

HTTPS_SERVER_ISSUER

 

Certificate Authority para o certificado do servidor.

 

HTTPS_SERVER_SUBJECT

 

Campo assunto do certificado do servidor.

 

HTTP_USER_AGENT

 

Tipo de versão do navegador bem como o sistema operacional do visitante.

 

HTTP_REFERER

 

Página em que o usuário este antes de entra na página atual, e a progressão foi feita através de um link.

 

HTTP_CONNECTION

 

Tipo de conexão entre o servidor e a estação cliente.

 

INSTANCE_ID

 

Instância do servidor WEB com o número de autenticação.

 

INSTANCE_META_PATH

 

Caminho do arquivo para esta instância específica.

 

LOCAL_ADDR

 

Endereço IP do servidor.

 

LOGON_USER

 

Se o usuário é registrado no sistema NT, este campo contém o nome do usuário.

 

PATH_INFO

 

Caminho para a página requisitada através da raiz do nome do domínio.

 

PATH_TRANSLATED

 

Caminho físico de requisição

 

QUERY_STRING

 

Qualquer dado submetido através do método GET ou após um ponto de interrogação no link.

 

REMOTE_ADDR

 

Endereço IP da máquina que está fazendo a requisição.

 

REMOTE_HOST

 

Nome traduzido do requisitante, se disponível.Se não, o campo contém o endereço IP.

 

REMOTE_USER

 

Nome do usuário, se enviado pelo visitante.

 

REQUEST_METHOD

 

Método Request usado, isto se é Post ou Get.

 

SCRIPT_NAME

 

Localização do arquivo virtual do código sendo requisitado.

 

SERVER_NAME

 

Nome do host (central) do servidor.

 

SERVER_PORT

 

Porta usada com a requisição.

 

SERVER_POR_SECURE

 

Se a requisição esta sendo feita através de uma conexão segura, então este campo contém o valor 1 se não, o campo contém o valor.

 

SERVER_PROTOCOL

 

Protocolo sendo usado com o número da versão, como HTTP/1.1.

 

URL

 

Caminho da página requisitada.

 

 

Fonte Site iMasters

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.