2014-09-04 2 views
0

Теоретически, если VarType(foo) возвращает 10 или vbError, это значит, что foo является ошибкой. Я ошибаюсь?Возможно ли создать ошибку и присвоить ее переменной подтипа ошибки в VBScript?

Как я могу заставить это случиться? Можно ли даже заставить foo провести ошибку? Если это не так, я не понимаю, почему Error является подтипом переменной.

ответ

0

VBScript не поддерживает все подтипы Variant. Например, попробуйте создать переменную подтипа vbDecimal (VBScript даже не имеет функции CDec(), позволяющей вам преобразовать тип в десятичный) или попытаться создать массив из ничего, кроме подтипа vbVariant.

Эти constants являются частью спецификации Variant, определенной библиотеками OLE Automation. VB/VBA поддерживает все эти подтипы, и, похоже, VBScript применяет те же константы, хотя для многих из них у него нет встроенной поддержки.

0

В VBScript трюме:

  1. Если объект имеет свойство по умолчанию, VarType (object) возвращает тип своего имущества по умолчанию.
  2. Свойство по умолчанию объекта Err - это номер. Err.Number содержит целое число.

Таким образом, VarType(Err) возвращает 3, а также VarType(foo) в следующем примере:

On Error Resume Next 
Dim foo 
Set foo = Err 
se tr 'this line raises an error 
Wscript.Echo CBool(IsObject(foo)) _ 
    & vbNewLine & VarType(foo) _ 
    & vbNewLine & foo.Number _ 
    & vbNewLine & foo.HelpFile _ 
    & vbNewLine & foo.HelpContext _ 
    & vbNewLine & foo.Source _ 
    & vbNewLine & foo.Description 

 Смежные вопросы

  • Нет связанных вопросов^_^