В классическом ASP, там способ обработать ошибки на прикладном уровне?

Взято из здесь

$source = "ftp://ftp.microsoft.com/ResKit/win2000/dureg.zip"
$target = "c:\temp\dureg.zip"
$WebClient = New-Object System.Net.WebClient
$WebClient.DownloadFile($source, $target)

Работает для меня

12
задан AnonJr 22 October 2009 в 03:05
поделиться

4 ответа

try:
    some code that can raise an error
except:
    do error handeling stuff
finally:
    clean up, close files etc

Можно эмулировать в vbscript следующим образом:

class CustomErrorHandler
    private sub class_terminate
        if err.number > 0 then
            do error handeling stuff
        end if 
        clean up, close files etc
    end sub
end class    


with new CustomErrorHandler
    some code
    ...
end with    

Как это работает? Метод class_terminate будет вызываться, когда вновь созданный экземпляр выходит за пределы области видимости. Это происходит либо тогда, когда интерпертер достигает оператора 'end with', либо когда стек вызовов раскручивается из-за ошибки. Это менее привлекательно, чем собственный подход Python, но он работает довольно хорошо и не слишком уродлив

Для обработки ошибок верхнего уровня вы можете использовать ту же технику. На этот раз не используйте оператор with, а создайте глобальный экземпляр обработчика ошибок. Помните, что объект ASPError, предоставленный server.getLastError (), не совпадает с объектом ошибки vbscript и доступен только после того, как IIS выполнил свой server.transfer обработчику ошибок 500: 100 и вернулся на вашу страницу для сбора мусор. Пример обработчика:

class cDebugger
  public sub do_debug
     ' print debug data here
  end sub
  public sub class_terminate
    if server.getlasterror().Number <> 0 then
        response.clear
        call do_debug
    end if
  end sub
end class
12
ответ дан 2 December 2019 в 07:22
поделиться
<% On Error Resume Next %>

If Err.number <> 0 then 'do other stuff

Link: http://www.15seconds.com/issue/990603.htm

0
ответ дан 2 December 2019 в 07:22
поделиться

К сожалению, Global.ASA предоставляет только методы Application_OnStart, Application_OnEnd, Session_OnStart и Session_OnEnd . Нет обработки ошибок.

Самое близкое, что вы можете получить (AFAIK), - это использование функции Custom Errors в IIS, чтобы указать на другой файл или URL-адрес для обработки ошибки.

Custom Errors Image

На мой взгляд, тоже много хлопот. Это отсутствующая функция, которая заставляет меня переносить некоторые веб-сайты только для того, чтобы быть уверенным в том, что сайт работает без ошибок.

6
ответ дан 2 December 2019 в 07:22
поделиться

Я сопоставляю страницу 500 ошибок в IIS с настраиваемой страницей обработки ошибок .asp. Затем эта страница использует Server.GetLastError для получения последней ошибки, отправьте мне электронное письмо с подробностями об ошибке, строке запроса, переменных сервера и т. Д. Затем она отображает дружественное сообщение пользователю.

3
ответ дан 2 December 2019 в 07:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: