Compartir a través de


ErrObject.Number Propiedad

Definición

Devuelve o establece un valor numérico que especifica un error. Lectura/escritura

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

Valor de propiedad

Devuelve o establece un valor numérico que especifica un error. Lectura/escritura

Excepciones

Number es mayor que 65535.

Ejemplos

En este ejemplo se muestra un uso típico de la Number propiedad en una rutina de control de errores.

    ' 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

En este ejemplo se usa el Err método del Raise objeto para generar un error original dentro de una función escrita en Visual Basic. La función de llamada puede detectar el error y notificarlo al usuario. Observe que el procedimiento CallingProcedure contrasta el tipo de información que puede derivar de un Err objeto con la información que puede derivar de un Exception objeto .

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

Comentarios

Todos los Raise argumentos excepto Number son opcionales. Si omite argumentos opcionales y la configuración de propiedad del Err objeto contiene valores que no se han borrado, esos valores sirven como valores para el error.

Dado que el Err objeto proporciona información más completa que cuando se generan errores con la Error instrucción , Raise resulta útil para generar errores al escribir módulos de clase. Por ejemplo, con el Raise método , se puede especificar el origen que generó el error en la Source propiedad , se puede hacer referencia a la Ayuda en línea para el error, etc.

Al devolver un error definido por el usuario de un objeto, establezca Err.Number agregando el número seleccionado como código de error a la VbObjectError constante. Por ejemplo, use el código siguiente para devolver el número 1051 como código de error:

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

Se aplica a

Consulte también