Можно ли сгенерировать ошибку в vbscript? - PullRequest
30 голосов
/ 21 декабря 2010

Я привык к программированию на C #, который, очевидно, имеет довольно надежную обработку ошибок. Сейчас я работаю над коротким проектом в VBScript. Я читал об обработке ошибок с помощью VBscript, используя «On Error _______» и глобальную переменную Err.

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

Ответы [ 3 ]

31 голосов
/ 21 декабря 2010

Да, вы можете.Используйте метод Err.Raise, например:

Err.Raise 5 ' Invalid procedure call or argument

Список стандартных кодов ошибок VBScript см. В Ошибки (VBScript) .

22 голосов
/ 16 мая 2016

Хотя @ helen * ответ правильный, он немного разреженный.

В нем подробно описан метод Err.Raise(), но упущены некоторые ключевые моменты.

Из оригинального вопроса
Однако, как я могу генерировать свои собственные ошибки?Например, если одной из моих функций передан неверный тип параметра, я бы предпочел, чтобы мой сценарий просто потерпел неудачу в этой точке, а затем попытайтесь продолжить.

Err.Raise() чрезвычайно универсаленон может генерировать существующие исключения (как уже обсуждалось) , но он также может генерировать совершенно новые пользовательские исключения.

Call Err.Raise(vbObjectError + 10, "My Application", "My custom error message")

vbObjectError (-2147221504) - встроенная константа VBScript, определяющая границу для появления пользовательских ошибок.

2 голосов
/ 21 декабря 2010

C # try-catch-finally

try {
    // some code
} catch( Exception e ) {
    // error handler
} finally {
    // clean up things
}

VBScript эквивалент

on error resume next
' some code
if( Err.number <> 0 ) then
    ' error handler -- you can use Err.raise() here to display your own errors
    Err.clear()
else
    ' clean up things
end if
on error goto 0

Для хороших примеров VBScript вы можете проверить проект ASP Xtreme Evolution

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...