ErrObject.Number Właściwość
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Zwraca lub ustawia wartość liczbową określającą błąd. Odczyt/zapis.
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
Wartość właściwości
Zwraca lub ustawia wartość liczbową określającą błąd. Odczyt/zapis.
Wyjątki
Number
jest większy niż 65535.
Przykłady
W tym przykładzie przedstawiono typowe użycie Number
właściwości w procedurze obsługi błędów.
' 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
W tym przykładzie użyto Err
metody obiektu Raise
do wygenerowania oryginalnego błędu w funkcji napisanej w języku Visual Basic. Funkcja wywołująca może przechwycić błąd i zgłosić go użytkownikowi. Zwróć uwagę, że procedura CallingProcedure
kontrastuje z typem Err
informacji, które można uzyskać od obiektu z informacjami, które można uzyskać od Exception
obiektu.
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
Uwagi
Raise
Wszystkie argumenty z wyjątkiem Number
są opcjonalne. Jeśli pominięto opcjonalne argumenty, a ustawienia Err
właściwości obiektu zawierają wartości, które nie zostały wyczyszczone, te wartości służą jako wartości błędu.
Err
Ponieważ obiekt udostępnia bogatsze informacje niż podczas generowania błędów w Error
instrukcji, Raise
jest przydatny do generowania błędów podczas pisania modułów klas. Na przykład za pomocą Raise
metody można określić źródło, które wygenerowało błąd we Source
właściwości, można odwoływać się do pomocy online dla błędu itd.
Podczas zwracania błędu zdefiniowanego przez użytkownika z obiektu ustaw Err.Number
liczbę wybraną jako kod błędu do stałej VbObjectError
. Na przykład użyjesz następującego kodu, aby zwrócić numer 1051 jako kod błędu:
Err.Raise(Number:=vbObjectError + 1051, Source:="SomeClass")