Quando estamos familiarizados com o ASP, acharemos muito simples, muitos desenvolvedores não pensam na maneira de lidar com erros. A maioria dos sites comerciais escritos em ASP ignora erros. Então, vamos entender como lidar com os erros da ASP agora.
Breve introdução
O ASP é tão simples que muitos desenvolvedores não pensam em lidar com erros. O manuseio correto de erros pode tornar seu aplicativo mais razoável. Eu já vi muitos sites comerciais escritos no ASP, a maioria dos quais ignoram o tratamento de erros.
Existem três tipos principais de erro:
Erro de compilação:
Esse tipo de erro ocorre geralmente devido ao problema da sintaxe do código.
O ASP parou de funcionar devido a um erro de compilação.
Executar erro
Este erro ocorre quando você está pronto para executar o ASP.
Por exemplo: se você tentar atribuir um valor a uma variável, mas estará além do escopo permitido pela variável.
Erro lógico
Erros lógicos são os mais difíceis de detectar. Esse tipo de erro geralmente é um erro estrutural que não pode ser descoberto por um computador.
Isso exige que verifiquemos minuciosamente nosso código.
Como os erros de compilação geralmente ocorrem em conjunto com erros lógicos e geralmente podem ser exibidos, o que estamos preocupados é o erro de operação. Tudo termina a operação do ASP e deixa um monte de texto muito hostil para o usuário.
Então, como lidamos com erros de operação! ? Vamos primeiro dar uma olhada no único comando de erro fornecido a nós pelo ASP - no erro de erro em seguida (gostaria de lembrar aos iniciantes que existem apenas em erro de retomar as próximas instruções no ASP, e não há nenhum erro de retomar as instruções Goto). Se você não usar no erro de retomar as próximas instruções, todos os erros de operação ocorrerão. Isso é fatal, um código de erro será "exibido" para o usuário e o programa ASP também será interrompido.
Aqui está um código de erro:
Provedor de DB da Microsoft OLE para Drivers ODBC Erro 80004005
[Microsoft] [ODBC Driver Manager] Nome da fonte de dados não encontrado e nenhum driver padrão especificado
/test.asp, linha 60
Quando usarmos o retomar o erro no erro na parte superior do programa, todos os erros serão ignorados e o programa executará automaticamente a próxima instrução. Dessa forma, o programa será totalmente executado e o usuário não verá a mensagem de erro após ocorrer um erro. Mas também existem desvantagens dessa maneira, ou seja, se o programa não for executado como você imagina, será difícil para você descobrir o que está errado, então você deve lidar com os erros sempre que necessário.
Erros de manuseio
No ASP, a melhor maneira de lidar com erros é colocar código na parte inferior do programa para lidar com erros. Eu também recomendo o uso de buffers em todos os programas ASP. Dessa forma, se ocorrer um erro, a página será interrompida e o conteúdo da página será limpo, para que o usuário não veja a mensagem de erro e haverá menos reclamações sobre você! Aqui está um exemplo:
< %@ Idioma = "vBScript" %>
<% 'Defina buffer para true
Response.Buffer = true
'Inicie o tratamento de erros
Em erro de erro em seguida
%>
<% 'Manipulação de erros
Se err.number <> 0 então
'Limpe a página
Response.clear
'Mostrar mensagem de erro ao usuário
%>
<html>
<head>
<Title> </title>
</head>
<Corpo bgcolor = "#c0c0c0">
<Font face = "Arial"> Ocorreu um erro na execução desta página asp <br>
Por favor, relate as seguintes informações ao balcão de suporte <P>
<b> Página Objeto de erro </b> <br>
Número do erro: < %= err.number %> <br>
Mensagem de erro: < %= err.description %> <br>
Arquivo de erro: < %= err.source %> <br>
Linha de erro: < %= err.line %> <br>
</font>
</Body>
</html>
<%Final se%>
Como você pode ver acima, eu configurei primeiro o erro de erro em seguida, para que um erro não afete a execução do programa.
Manipulação de erros e banco de dados
A execução de adicionar bancos de dados ao tratamento de erros é muito complicada. Se tivermos um programa com muitos comandos para adicionar registros ao banco de dados, se o Insert/Update for executado na parte inferior do programa, se ocorrer nosso erro antes, ele terminará! Adicionaremos uma mensagem de erro ao banco de dados. Como usamos em currículo de erro em seguida, todos os erros foram ignorados! Mesmo se houver um erro antes, o programa ainda adicionará dados ao banco de dados.
Para evitar essa situação, temos que fazer alguns truques primeiro. A maneira correta de lidar com isso é a seguinte:
Se err.number = 0 e objConnection.errors.count = 0 então
'A declaração só pode ser executada aqui porque não há erros
Set rstresults = dbdata.execute (txtsql)
Final se
Soluções mais avançadas
Quando ocorre um erro, você também pode exibir mais mensagens de erro. Abaixo está um exemplo de manuseio de erros de banco de dados e página. Com isso, podemos descobrir todos os erros em nosso programa de uma só vez. (Como acho que o inglês é mais difícil de falar em alguns lugares, não há tradução).
<%
Se err.number <> 0 então
Response.clear
Selecione o caso err.Number
Caso 8 'Especifique o número errado
'Solucionar problemas de erros personalizados aqui
Erro geral do caso mais
Se o ISOBject (objConnection) então
Se objConnection.errors.count> 0 então
%>
<b> Objeto de conexão do banco de dados </b>
< % Para intloop = 0 para objConnection.errors.count - 1 %>
Erro no: < %= objConnection.errors (Intloop) .Number %> <br>
Descrição: < %= objConnection.errors (Intloop) .Description %> <br>
Fonte: < %= objConnection.errors (Intloop) .Source %> <br>
SqlState: < %= objConnection.errors (Intloop) .SqlState %> <br>
NativeError: < %= objConnection.errors (Intloop) .nativeError %> <p>
<% A seguir
Final se
Final se
Se err.number <> 0 então
%>
<b> Página Objeto de erro </b> <br>
Número de erro < %= err.number %> <br>
Erro Descrição < %= err.description %> <br>
Fonte < %= err.source %> <br>
Linenumber < %= err.line %> <p>
<% Final se
Final Selecione
Final se
%>
O exemplo acima nos permite lidar com muitos problemas que ocorrem no banco de dados, que também é comumente usado em nossa programação diária! Também devemos ver essa instrução CASE SELECT, que nos permite lidar com erros específicos.
Redirecionar e manuseio de erros
Uma coisa em que devemos prestar atenção é o objeto de redirecionamento que costumamos usar. Se um objeto de redirecionamento aparecer em uma página, o manuseio de erros perderá seu significado. Então, temos que lidar com isso antes de virar, como segue:
Se err.number = 0 e objConnection.errors.count = 0 então
Response.clear
Response.Redirect? Lt; URL aqui>?
Final se
Torne o código mais legal
Para tornar o código mais limpo, primeiro coloque o arquivo com manuseio de erros em um arquivo conter. Dessa forma, você pode usá -lo em qualquer arquivo. Isso também é conveniente para modificar.
Adicione o erro ON ERRO REMOTE A PRÓXIMA DO TEMPO na parte superior do seu programa (após a declaração do idioma, é claro).
Faça um erro de verificação antes de executar o SQL.
O manuseio de erros também foi necessário antes de usar o redirecionamento.
Deixe você lidar com erros contendo arquivos na parte superior do código
Este é o fim do conteúdo do método de manuseio de erros ASP. Espero que o conteúdo deste artigo seja de ajuda para estudar ou trabalhar de todos.