ErrObject.Number Property

Returns or sets a numeric value specifying an error. Read/write.

Namespace:  Microsoft.VisualBasic
Assembly:  Microsoft.VisualBasic (in Microsoft.VisualBasic.dll)

public int Number { get; set; }

Property Value

Type: System.Int32
Returns or sets a numeric value specifying an error. Read/write.

ExceptionCondition
ArgumentException

Number is greater than 65535.

All of the Raise arguments except Number are optional. If you omit optional arguments, and the property settings of the Err object contain values that have not been cleared, those values serve as the values for your error.

Because the Err object gives richer information than when you generate errors with the Error statement, Raise is useful for generating errors when writing class modules. For example, with the Raise method, the source that generated the error can be specified in the Source property, online Help for the error can be referenced, and so on.

When returning a user-defined error from an object, set Err.Number by adding the number you selected as an error code to the VbObjectError constant. For example, you use the following code to return the number 1051 as an error code:

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

This example illustrates a typical use of the Number property in an error-handling routine.

    ' 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

This example uses the Err object's Raise method to generate an original error within a function written in Visual Basic. The calling function can catch the error and report it to the user. Notice that procedure CallingProcedure contrasts the type of information that you can derive from an Err object with the information that you can derive from an Exception object.

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

.NET Framework

Supported in: 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Was this page helpful?
(1500 characters remaining)
Thank you for your feedback
Show:
© 2014 Microsoft