Поделиться через


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 , можно ссылаться на справку по ошибке в интернете и т. д.

Применяется к

См. также раздел