Recomendado: Use ASP para desenvolver sites Geralmente, os sites em larga escala têm cada vez menos probabilidade de usar a ASP para arquitetura, mas a ASP ainda ocupa um grande escopo de mercado em pequenos e médios sites de negócios. O ASP é favorecido por pequenos e médios administradores de sites por seu ciclo de desenvolvimento simples e curto e fácil manutenção. No entanto, tanto quanto eu sei
7.4.2 Manipulação de erros do VBScript
No VBScript, o intérprete do script pode ser cometido não lide com nenhum erro que encontre e continue executando a próxima instrução usando o retomado de erro no próximo instrução. Depois que essa declaração for processada, o mecanismo de script continuará executando o programa subsequente sem pagar nenhum erro que tenha sido encontrado. No entanto, esse processo se aplica apenas a ambientes em que as declarações são executadas sequencialmente e, em outras palavras, não a funções ou sub -rotinas aninhadas.
1. Use o erro de erro na próxima instrução
Quando ocorre um erro em uma sub -rotina, se o erro ON RURITE NEXT Declaração não for executado, o erro será entregue ao ambiente em que ele é chamado. Esse processo é repetido até que o ambiente em execução no Erro Rolume a próxima instrução seja encontrada, ou o manipulador de erros de script padrão é encontrado, e o erro é entregue ao ASP e o IIS exibe a página de erro padrão.
Essa cadeia de chamadas erradas significa que funções e sub -rotinas podem ser criadas que impedem que erros de execução façam com que o programa pare de funcionar. Se um currículo de erro no erro for colocado no início da sub-rotina, quaisquer erros de tempo de execução abortarão a execução da sub-rotina, mas o programa que chama a sub-rotina continuará sendo executado sem fazer com que a página da web pare.
Por exemplo, se você precisar escrever uma string em um arquivo, poderá acessar o arquivo por meio de uma função independente para impedir que os erros interrompem toda a execução do programa:
'Crie um arquivo chamado strfilename, substituindo qualquer um existente com esse nome
'e escreve strcontent nele e depois fecha o arquivo
'Retorna true se for bem -sucedido ou false em qualquer erro
Função writenewfile (strfilename, strcontent)
No erro, retomar o próximo 'desligue o manipulador de erros padrão
WitEnewFile = Flase 'Valor de retorno padrão da função
Set objfso = createObject (script.filesystemoBject)
Se err.number = 0 então defina objfile = objfso.createTextFile (strfileName, true)
Se err.number = 0 então objfile.WriteLine strContent
Se err.number = 0 então objfile.close
Se err.number = 0 então writenewfile = true
Função final
Observe que o programa acima verifica a propriedade Number do objeto ERR do VBScript antes de tentar processar cada instrução do programa. Se esse valor for 0 (nenhum erro ocorreu ainda), o processo de arquivamento e criação do arquivo poderá ser continuado. No entanto, se o erro ocorrer, o mecanismo de script definirá o valor da propriedade do objeto ERR e continuará a processar a próxima linha.
Contanto que possa ser executado normalmente sem causar um erro, o valor de retorno da função será definido como true. Caso contrário, a função retornará falsa. Na programação, você pode usar essa função e executar outras ações após testá -la.
Aqui está um exemplo simples, queremos usar uma função separada para a primeira parte da tarefa, para que possamos identificar com mais precisão onde o erro ocorre. Isso facilita a leitura do código durante a depuração. No programa principal da página, três funções separadas podem ser chamadas.
Se CreateNewFile (strfileName), então 'crie o novo arquivo
Response.Write New File criado com sucesso <br>
Se WriteContent (strContent), então escreva o conteúdo
Response.Write Content escrito para arquivo <br>
Outro
Response.Write Erro: Falha ao gravar no arquivo <br>
Final se
Se CloseFile (strfilename) então
O arquivo de resposta.write fechado <br>
Outro
Erro de resposta.Write: Falha ao fechar o arquivo <br>
Final se
Outro
Response.Write Erro: Falha ao criar o novo arquivo <br>
Final Funciotn
2. Usando no erro goto 0
No ASP 2.0 (embora nenhuma documentação) e ASP 3.0, o comportamento de manuseio de erros padrão também pode ser restaurado usando a instrução ON ERRO GOTO 0. Após a execução desta instrução, o erro de tempo de execução que ocorre fará com que o manuseio de erros padrão, verificando cada programa aninhado na cadeia ambiental até o código da página principal. Se não houver outro ambiente para desativar o manuseio de erros padrão, a execução da página da web parará e exibirá a página de erro padrão do IIS.
3. Objeto ERR vBScript
No exemplo anterior, quando o manuseio de erros padrão é desligado, verifique se o erro ocorreu verificando a propriedade Number do objeto VBScript ERR. O objeto Err armazena informações sobre erros de tempo de execução. As tabelas 7-3 e 7-4 fornecem os métodos e propriedades fornecidos pelo objeto VBScript ERR.
Tabela 7-3 Métodos de objeto ERR vBScript
método
ilustrar
Claro
Limpe todas as configurações atuais de objeto err err
Elevação
Um erro de tempo de execução ocorreu
Tabela 7-4 Propriedades do objeto ERR vBScript
propriedade
ilustrar
Descrição
Defina ou retorne uma string descrevendo o erro
Número
(Padrão) Defina ou retorne o valor de erro especificado
Fonte
Defina ou retorne o nome do objeto que gerou o erro
Use essas propriedades para verificar qual erro ocorre. Por exemplo, diferentes medidas podem ser tomadas com base no número do erro, ou as informações de erro podem ser fornecidas ao usuário com os valores da propriedade de origem e descrição ou transferidos para um arquivo.
Você também pode usar o objeto ERR para gerar um erro. Por que essas coisas? Porque às vezes quero enviar uma mensagem de erro personalizada para o usuário. As propriedades do objeto ERR podem ser definidas como qualquer valor desejado. Em seguida, chame o método Raise para gerar esse erro. Fazer isso interromperá o programa e passará o erro ao longo da cadeia de chamadas.
O exemplo a seguir mostra como lidar com erros ao ler um arquivo de texto no disco do servidor. Observe como usar o constante vbobjecterror para determinar que o número de erro selecionado não será confundido com um número de erro existente. Ao adicionar qualquer número de erro selecionado a essa constante, é garantido que não seja confundido com erros predefinidos.
Functoin readthisfile (strfileName) 'retorna o conteúdo como uma string
Em erro de erro em seguida
Readthisfile = 'Valor de retorno padrão da função
Set objfso = createObject (script.filesystemoBject)
Set objfile = objfso.opentExtfile (strfileName, forreading)
Selecione o caso err.Number
Caso 0 'ok, não tome nenhuma ação
Caso 50, 53 'Arquivo ou caminho não encontrado erros encontrados
'Crie valores de erro personalizados e aumente o erro da cadeia de chamadas
interrnumber = VBOBJECTERROR 1073 'Número de erro personalizado
StrerrDescript
Compartilhar: Como usar o ASP para obter o endereço do IP real do cliente? Para obter o endereço IP real do cliente através do servidor proxy, você deve usar o request.Servervariables (http_x_forwarded_for) para lê -lo. Mas deve -se notar que nem todo servidor proxy pode usar o request.ervervariab