ErrObject.Number 속성

정의

오류를 지정하는 숫자 값을 반환하거나 설정합니다. 읽기/쓰기입니다.

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

속성 값

오류를 지정하는 숫자 값을 반환하거나 설정합니다. 읽기/쓰기입니다.

예외

Number 가 65535보다 큰 경우

예제

이 예제에서는 오류 처리 루틴에서 속성의 Number 일반적인 사용을 보여 줍니다.

    ' 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

이 예제에서는 Err 개체의 Raise 메서드를 사용하여 Visual Basic 작성된 함수 내에서 원래 오류를 생성합니다. 호출 함수는 오류를 catch하고 사용자에게 보고할 수 있습니다. 프로시저 CallingProcedure 는 개체에서 파생할 수 있는 정보의 형식과 개체에서 Err 파생할 수 있는 정보와 대조됩니다 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

설명

인수를 Raise 제외한 Number 모든 인수는 선택 사항입니다. 선택적 인수를 생략하고 개체의 Err 속성 설정에 지워지지 않은 값이 포함된 경우 해당 값은 오류 값으로 사용됩니다.

개체는 ErrRaise 으로 Error 오류를 생성할 때보다 더 풍부한 정보를 제공하므로 클래스 모듈을 작성할 때 오류를 생성하는 데 유용합니다. 예를 들어 메서드를 Raise 사용하면 오류를 생성한 원본을 속성에 Source 지정할 수 있고, 오류에 대한 온라인 도움말을 참조할 수 있습니다.

개체에서 사용자 정의 오류를 반환하는 경우 선택한 숫자를 상수에 오류 코드 VbObjectError 로 추가하여 설정합니다Err.Number. 예를 들어 다음 코드를 사용하여 숫자 1051을 오류 코드로 반환합니다.

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

적용 대상

추가 정보