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);
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

このフィールドは省略可能です。 String エラーを生成したオブジェクトまたはアプリケーションに名前を付ける式。 オブジェクトに対してこのプロパティを設定する場合は、フォーム project.classを使用します。 Sourceが指定されていない場合は、現在のVisual Basic プロジェクトのプロセス ID が使用されます。

Description
Object

このフィールドは省略可能です。 String エラーを説明する式。 指定しない場合は、 Number プロパティの値が調べされます。 Visual Basicランタイム エラー コードにマップできる場合は、Error 関数によって返される文字列が、Description プロパティとして使用されます。 Number プロパティに対応するVisual Basic エラーがない場合は、"アプリケーション定義またはオブジェクト定義エラー" メッセージが使用されます。

HelpFile
Object

このフィールドは省略可能です。 このエラーに関するヘルプを確認できるヘルプ ファイルへの完全修飾パスです。 指定しない場合、Visual Basic では、完全修飾された、Visual Basic ヘルプ ファイルのドライブ、パス、およびファイル名が使用されます。

HelpContext
Object

このフィールドは省略可能です。 エラーのヘルプを提供する HelpFile 内のトピックを識別するコンテキスト ID。 省略すると、Number プロパティに対応するエラーのVisual Basicヘルプ ファイル コンテキスト ID が使用されます (存在する場合)。

この例では、Err オブジェクトの Raise メソッドを使用して、Visual Basic で記述された関数内でエラーを生成します。 呼び出し元の関数は、エラーをキャッチし、メッセージ ボックスを使用してユーザーに報告できます。

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 オブジェクトのプロパティ設定にクリアされていない値が含まれている場合、それらの値はエラーの値として機能します。

Err オブジェクトは、Error ステートメントでエラーを生成する場合よりも豊富な情報を提供するため、Raiseクラス モジュールを記述するときにエラーを生成する場合に便利です。 たとえば、 Raise メソッドでは、エラーを生成したソースを Source プロパティで指定したり、エラーのオンライン ヘルプを参照したりできます。

適用対象

こちらもご覧ください