ErrObject.Raise(Int32, Object, Object, Object, Object) Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Генерирует ошибку во время выполнения, может использоваться вместо оператора Error.
public void Raise (int Number, object? Source = default, object? Description = default, object? HelpFile = default, object? HelpContext = default);
public void Raise (int Number, object Source = default, object Description = default, object HelpFile = default, object HelpContext = default);
member this.Raise : int * obj * obj * obj * obj -> unit
Public Sub Raise (Number As Integer, Optional Source As Object = Nothing, Optional Description As Object = Nothing, Optional HelpFile As Object = Nothing, Optional HelpContext As Object = Nothing)
Параметры
- Number
- Int32
Обязательный. Целое число типа Long, определяющее тип ошибки. Ошибки Visual Basic обозначаются числами в диапазоне 0-65535; диапазон 0-512 зарезервирован для системных ошибок; диапазон 513-65535 отводится для ошибок, определяемых пользователем. При задании свойства Number для кода создания ошибки в модуле класса к константе vbObjectError необходимо добавить номер пользовательского кода ошибки. Например, чтобы создать ошибку с номером 513, назначьте vbObjectError + 513 свойству Number .
- Source
- Object
Необязательный элемент. Выражение типа String, содержащее имя объекта или приложения, вызвавшего ошибку. При задании этого свойства для объекта используйте форму project.class. Если Source не указан, используется идентификатор процесса текущего проекта Visual Basic.
- Description
- Object
Необязательный элемент. Выражение типа String, описывающее ошибку. Если это значение не задано, то проверяется значение свойства Number. Если данное значение может быть сопоставлено с кодом ошибки во время выполнения Visual Basic, то в качестве свойства Error используется строка, возвращаемая функцией Description. Если не существует ошибки Visual Basic, соответствующей свойству Number, то используется сообщение "Application-defined or object-defined error" ("Ошибка, определенная приложением или объектом").
- HelpFile
- Object
Необязательный элемент. Полный путь к файлу справки, в котором может содержаться справка о данной ошибке. Если данный аргумент не указан, то используется полный путь (содержащий имя устройства, путь и имя файла) к файлу справки Visual Basic.
- HelpContext
- Object
Необязательный элемент. Идентификатор контекста, определяющий для данной ошибки раздел справки в файле HelpFile. Если данный параметр опущен, то используется идентификатор контекста файла справки Visual Basic, соответствующий свойству Number.
Примеры
В этом примере метод объекта Raise используется Err для создания ошибки в функции, написанной на Языке Visual Basic. Вызывающая функция может перехватывать ошибку и сообщать о ней пользователю с помощью окна сообщения.
Module Module1
Const WidthErrorNumber As Integer = 1000
Const WidthHelpOffset As Object = 100
Sub Main()
CallingProcedure()
End Sub
Sub TestWidth(ByVal width As Integer)
If width > 1000 Then
' Replace HelpFile.hlp with the full path to an appropriate
' help file for the error. Notice that you add the error
' number you want to use to the vbObjectError constant.
' This assures that it will not conflict with a Visual
' Basic error.
Err.Raise(vbObjectError + WidthErrorNumber, "ConsoleApplication1.Module1.TestWidth",
"Width must be less than 1000.", "HelpFile.hlp", WidthHelpOffset)
End If
End Sub
Sub CallingProcedure()
Try
' The error is raised in TestWidth.
TestWidth(2000)
Catch ex As Exception
' The Err object can access a number of pieces of
' information about the error.
Console.WriteLine("Information available from Err object:")
Console.WriteLine(Err.Number)
Console.WriteLine(Err.Description)
Console.WriteLine(Err.Source)
Console.WriteLine(Err.HelpFile)
Console.WriteLine(Err.HelpContext)
Console.WriteLine(Err.GetException)
Console.WriteLine(vbCrLf & "Information available from Exception object:")
Console.WriteLine(ex.Message)
Console.WriteLine(ex.ToString)
Err.Clear()
End Try
End Sub
End Module
' The example produces the following output:
' Information available from Err object:
' -2147220504
' Width must be less than 1000.
' ConsoleApplication1.Module1.TestWidth
' HelpFile.hlp
' 100
' System.Exception: Width must be less than 1000.
' at Microsoft.VisualBasic.ErrObject.Raise(Int32 Number, Object Source, Object
' Description, Object HelpFile, Object HelpContext)
' at ConsoleApplication1.Module1.TestWidth(Int32 width) in C:\Users\example\App
' Data\Local\Temporary Projects\ConsoleApplication1\Module1.vb:line 17
' at ConsoleApplication1.Module1.CallingProcedure() in C:\Users\example\AppData
' \Local\Temporary Projects\ConsoleApplication1\Module1.vb:line 25
'
' Information available from Exception object:
' Width must be less than 1000.
' System.Exception: Width must be less than 1000.
' at Microsoft.VisualBasic.ErrObject.Raise(Int32 Number, Object Source, Object
' Description, Object HelpFile, Object HelpContext)
' at ConsoleApplication1.Module1.TestWidth(Int32 width) in C:\Users\example\App
' Data\Local\Temporary Projects\ConsoleApplication1\Module1.vb:line 17
' at ConsoleApplication1.Module1.CallingProcedure() in C:\Users\example\AppData
' \Local\Temporary Projects\ConsoleApplication1\Module1.vb:line 25
Комментарии
Все аргументы, Raise кроме Number , являются необязательными. Если опустить необязательные аргументы, а параметры Err свойств объекта содержат значения, которые не были очищены, эти значения будут использоваться в качестве значений для ошибки.
Err Поскольку объект предоставляет более подробную информацию, чем при создании ошибок с помощью инструкции Error , Raise он удобен для создания ошибок при написании модулей класса. Например, с помощью Raise метода источник, создающий ошибку, можно указать в свойстве Source , можно ссылаться на справку по ошибке в интернете и т. д.