次の方法で共有


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 を生成するには、 プロパティに をNumber割り当てますvbObjectError + 513

Source
Object

省略可能。 エラーが生成されたオブジェクトまたはアプリケーションを指定する String 型の式。 オブジェクトに対してこのプロパティを設定する場合は、 という形式 projectを使用しますclassSource が指定されていない場合は、現在の 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 が使用されます (存在する場合)。

この例では、 オブジェクトの Raise メソッドをErr使用して、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 プロパティで指定したり、エラーのオンライン ヘルプを参照したりできます。

適用対象

こちらもご覧ください