ErrObject.Number Egenskap

Definition

Returnerar eller anger ett numeriskt värde som anger ett fel. Läsning/skrivning.

public:
 property int Number { int get(); void set(int value); };
public int Number { get; set; }
member this.Number : int with get, set
Public Property Number As Integer

Egenskapsvärde

Returnerar eller anger ett numeriskt värde som anger ett fel. Läsning/skrivning.

Undantag

Number är större än 65535.

Exempel

Det här exemplet illustrerar en typisk användning av Number egenskapen i en felhanteringsrutin.

    ' Typical use of Number property.
Sub test()
  On Error GoTo out

  Dim x, y As Integer
  x = 1 / y   ' Create division by zero error.
  Exit Sub
out:
  MsgBox(Err.Number)
  MsgBox(Err.Description)
  ' Check for division by zero error.
  If Err.Number = 11 Then
      y = y + 1
  End If
  Resume Next
End Sub

I det här exemplet används metoden Err-objektets Raise för att generera ett ursprungligt fel i en funktion som skrivits i Visual Basic. Den anropande funktionen kan fånga upp felet och rapportera det till användaren. Observera att proceduren CallingProcedure kontrasterar den typ av information som du kan härleda från ett Err objekt med den information som du kan härleda från ett Exception objekt.

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.

När du returnerar ett användardefinierat fel från ett objekt anger Err.Number du genom att lägga till det nummer som du har valt som en felkod i konstanten VbObjectError . Du kan till exempel använda följande kod för att returnera numret 1051 som en felkod:

Err.Raise(Number:=vbObjectError + 1051, Source:="SomeClass")

Gäller för

Se även