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 verbo 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
Os erros lógicos são os mais difíceis de detectar.
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. Ele encerra a operação do ASP e deixa um monte de texto hostil para o usuário.
Então, como lidamos com erros de operação! ? Vamos dar uma olhada primeiro. No erro de retomar, todos os erros em execução ocorrerão.
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 o buffer como true Respons.Buffer = true' Start Error Manuseling On Error Reduza Next%> Exibir mensagem de erro para usuário%> <html> <head> <title> </title> </head> <corpo bgcolor =#c0c0c0> <font face = arial> Um erro ocorreu na execução desta página asp <br> Por favor, relate o seguinte Informações ao Desk de Suporte <p> <b> Página Erro Objeto </b> <br> Número do erro: < %= err.number %> <br> Mensagem de erro: < %= err.description %> <br> Erro Mensagem: < %= err.description %> <br> Ocorreu o erro: < %= err.source %> <br> Linha de erro: < %= err.line %> <br> </font> </body> </html> <%end if%>
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 nosso erro ocorrer novamente 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.
Se err.number = 0 e objConnection.errors.count = 0 Então 'a instrução pode ser executada aqui porque não há conjunto de erros rstresults = dbdata.execute (txtSql)
Soluções mais avançadas
Quando ocorre um erro, você também pode exibir mais mensagens de erro. Abaixo está um exemplo de manipulação de erros de banco de dados e página. (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 Case Err.Number Caso 8 'Especifique o número do erro' Caso else aqui 'Erro geral Se 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> < %próximo final se final se se err.number <> 0, então %> <b> Erro da página Erro Objeto </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 SELECT CASE, 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. 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>?
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 (após a declaração do idioma, é claro) o erro de erro no próximo instrução na parte superior do seu programa.
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