Это , а не , то же самое, что и другой вопрос, потому что совет в другом вопросе не работает для меня. Я специально пытаюсь определить, что отличается в моем случае, что это не работает.
Я работаю в Classic ASP. Согласно документам, которые я нахожу в Интернете (здесь и в других местах: https://www.w3schools.com/ASp/asp_ref_error.asp), объект ошибки ASP должен иметь следующие свойства, среди прочего:
- Описание: Возвращает краткое описаниеошибка
- Файл: возвращает имя файла ASP, сгенерировавшего ошибку.
- Строка: возвращает номер строки, в которой была обнаружена ошибка.
- Число: возвращает стандартную ошибку COM. код ошибки
У меня есть следующий тестовый код. Примечание error_log()
- это пользовательская функция, которая записывает текст в файл журнала.
on error resume next
blah
if err.number > 0 then
error_log( err.number )
error_log( err.description )
error_log( err.file )
error_log( err.line )
end if
on error goto 0
Первые две строки, number
и description
, записываются, как ожидается;но file
и line
нет. Насколько я могу судить, последние два свойства просто недоступны для моей копии ASP / VBScript. Почему у меня нет этих свойств?
Я использую, как мне кажется, последнюю (около 2000 г.) версию классического ASP VBScript. Прямо изо рта лошади: VBScript 5.8 build 16384
EDIT: попытки запустить Server.GetLastError()
не удаются. Похоже, у меня нет этой команды по какой-то причине. [ИСПРАВЛЕНИЕ: работает, но, похоже, данных нет. См. Примеры ниже]
Новый минимальный пример:
On Error Resume Next
blah 'This is our error. unrecognized variable'
Set error = Server.GetLastError()
response.write error.file
On Error Goto 0
response.end
В результате появляется пустой экран. Данные об ошибках не записываются.
Еще один тест. Примечание «ошибка» и автоматически сгенерированный «err»:
On Error Resume Next
blah 'This is our error. unrecognized variable'
Set error = Server.GetLastError()
response.write error.number
response.write " | "
response.write err.number
response.write "<br>" & vbCrLf
response.write error.description
response.write " | "
response.write err.description
response.write "<br>" & vbCrLf
response.write error.file
response.write " | "
response.write error.line
On Error Goto 0
response.end
Результат:
0 | 500
| Variable is undefined
| 0