ErrObject.Number Vlastnost
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Vrátí nebo nastaví číselnou hodnotu určující chybu. Čtení a zápis
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
Hodnota vlastnosti
Vrátí nebo nastaví číselnou hodnotu určující chybu. Čtení a zápis
Výjimky
Number
je větší než 65535.
Příklady
Tento příklad ukazuje typické použití Number
vlastnosti v rutině zpracování chyb.
' 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
Tento příklad používá metodu objektu Err
Raise
k vygenerování původní chyby v rámci funkce napsané v jazyce Visual Basic. Volající funkce může chybu zachytit a nahlásit ji uživateli. Všimněte si, že procedura CallingProcedure
kontrastuje typ informací, které lze odvodit od objektu Err
, s informacemi, které lze odvodit od objektu Exception
.
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
Poznámky
Všechny argumenty Raise
s výjimkou Number
jsou volitelné. Pokud vynecháte volitelné argumenty a nastavení vlastností objektu Err
obsahuje hodnoty, které nebyly vymazány, budou tyto hodnoty sloužit jako hodnoty pro vaši chybu.
Vzhledem k tomu, že Err
objekt poskytuje bohatší informace než při generování chyb pomocí Error
příkazu , Raise
je užitečné pro generování chyb při psaní modulů třídy. Například pomocí Raise
metody lze ve Source
vlastnosti zadat zdroj, který chybu vygeneroval, odkazovat na online nápovědu k chybě atd.
Při vrácení uživatelem definované chyby z objektu se nastaví Err.Number
přidáním čísla, které jste vybrali jako kód chyby, k konstantě VbObjectError
. Následující kód například použijete k vrácení čísla 1051 jako kódu chyby:
Err.Raise(Number:=vbObjectError + 1051, Source:="SomeClass")