ErrObject.Raise(Int32, Object, Object, Object, Object) Metod

Definition

Genererar ett körningsfel. kan användas i stället för -instruktionen 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)

Parametrar

Number
Int32

Required. Long heltal som identifierar felets art. Visual Basic fel finns i intervallet 0-65535; intervallet 0-512 är reserverat för systemfel. Intervallet 513-65535 är tillgängligt för användardefinierade fel. När du ställer in Number egenskapen på din egen felkod i en klassmodul lägger du till felkodsnumret i konstanten vbObjectError . Om du till exempel vill generera felnumret 513 tilldelar du vbObjectError + 513 egenskapen Number .

Source
Object

Optional. String uttryck som namnger objektet eller programmet som genererade felet. När du anger den här egenskapen för ett objekt använder du formuläret project.class. Om Source inte anges används process-ID:t för det aktuella Visual Basic projektet.

Description
Object

Optional. String uttryck som beskriver felet. Om det är ospecificerat granskas värdet i egenskapen Number . Om den kan mappas till en Visual Basic körningsfelkod används strängen som returneras av funktionen Error som egenskapen Description. Om det inte finns något Visual Basic fel som motsvarar egenskapen Number används meddelandet "Programdefinierat eller objektdefinierat fel".

HelpFile
Object

Optional. Den fullständigt kvalificerade sökvägen till hjälpfilen där hjälp om det här felet finns. Om det är ospecificerat använder Visual Basic den fullständigt kvalificerade enheten, sökvägen och filnamnet för Visual Basic Hjälp-filen.

HelpContext
Object

Optional. Kontext-ID:t som identifierar ett ämne inom HelpFile som ger hjälp för felet. Om det utelämnas används Visual Basic hjälpfilkontext-ID för felet som motsvarar egenskapen Number, om det finns.

Exempel

I det här exemplet används metoden Err-objektets Raise för att generera ett fel i en funktion som skrivits i Visual Basic. Den anropande funktionen kan fånga upp felet och rapportera det till användaren med en meddelanderuta.

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

Kommentarer

Raise Alla argument utom Number är valfria. Om du utelämnar valfria argument och egenskapsinställningarna Err för objektet innehåller värden som inte har rensats, fungerar dessa värden som värden för ditt fel.

Eftersom objektet Err ger mer information än när du genererar fel med -instruktionen Error är Raise det användbart för att generera fel när du skriver klassmoduler. Med metoden kan till exempel Raise källan som genererade felet anges i Source egenskapen, onlinehjälpen för felet kan refereras till och så vidare.

Gäller för

Se även