ErrObject.Raise(Int32, Object, Object, Object, Object) 메서드

정의

런타임 오류를 생성합니다. 문 대신 Error 사용할 수 있습니다.

public void Raise(int Number, object Source = default, object Description = default, object HelpFile = default, object HelpContext = default);
member this.Raise : int * obj * obj * obj * obj -> unit
Public Sub Raise (Number As Integer, Optional Source As Object = Nothing, Optional Description As Object = Nothing, Optional HelpFile As Object = Nothing, Optional HelpContext As Object = Nothing)

매개 변수

Number
Int32

필수 사항입니다. Long 오류의 특성을 식별하는 정수입니다. Visual Basic 오류는 0-65535 범위이고, 범위 0-512는 시스템 오류에 대해 예약되어 있으며, 범위 513-65535는 사용자 정의 오류에 사용할 수 있습니다. 클래스 모듈에서 Number 속성을 사용자 고유의 오류 코드로 설정할 때 오류 코드 번호를 상수에 vbObjectError 추가합니다. 예를 들어 오류 번호 513을 생성하려면 속성에 할당 vbObjectError + 513 합니다 Number .

Source
Object

Optional. String 오류를 생성한 개체 또는 애플리케이션의 이름을 지정하는 식입니다. 개체에 대해 이 속성을 설정할 때는 .class형식project을 사용합니다. Source 지정하지 않으면 현재 Visual Basic 프로젝트의 프로세스 ID가 사용됩니다.

Description
Object

Optional. String 오류를 설명하는 식입니다. 지정되지 않은 경우 속성의 Number 값이 검사됩니다. Visual Basic 런타임 오류 코드에 매핑할 수 있는 경우 Error 함수에서 반환되는 문자열은 Description 속성으로 사용됩니다. Number 속성에 해당하는 Visual Basic 오류가 없으면 "애플리케이션 정의 또는 개체 정의 오류" 메시지가 사용됩니다.

HelpFile
Object

Optional. 이 오류에 대한 도움말을 찾을 수 있는 도움말 파일의 정규화된 경로입니다. 지정되지 않은 경우 Visual Basic Visual Basic 도움말 파일의 정규화된 드라이브, 경로 및 파일 이름을 사용합니다.

HelpContext
Object

Optional. 해당 내에서 HelpFile 항목을 식별하는 컨텍스트 ID는 오류에 대한 도움말을 제공합니다. 생략하면 Number 속성에 해당하는 오류에 대한 Visual Basic 도움말 파일 컨텍스트 ID가 사용됩니다(있는 경우).

예제

이 예제에서는 Err 개체의 Raise 메서드를 사용하여 Visual Basic 작성된 함수 내에서 오류를 생성합니다. 호출 함수는 오류를 catch하고 메시지 상자를 사용하여 사용자에게 보고할 수 있습니다.

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 지정할 수 있고, 오류에 대한 온라인 도움말을 참조할 수 있습니다.

적용 대상

추가 정보