Share via


方法 : Visual Basic で Try...Finally ブロックを使用してリソースをクリーンアップする

更新 : 2007 年 11 月

Try ブロック内で Finally ステートメントを使用すると、割り当てられているリソースを確実に解放できます。Finally ブロック内のコードは、例外処理コードの後で、呼び出し元のプロシージャに制御を返す前に実行されます。Finally ブロック内のコードは、たとえコードで例外がスローされた場合でも、また、Catch ブロック内に明示的な Exit Function ステートメント (または Exit Sub ステートメント) がある場合でも実行されます。

特定の例外をキャッチする必要がない場合には、Using ステートメントを使用すると TrycFinally ブロックと同じように動作し、どのようにブロック内の処理が終了する場合でも確実にリソースを解放できます。これは、未処理の例外の場合にも該当します。詳細については、「Using ステートメント (Visual Basic)」を参照してください。

Finally ステートメントを使用してリソースをクリーンアップするには

  • 例外の種類にかかわらず実行するコードを、Finally ブロック内に配置します。次のコードでは、StreamReader を作成し、これを使用してファイルを読み込みます。

    Dim reader As New System.IO.StreamReader("C:\testfile")
    Try
        reader.ReadToEnd()
    Catch ex As System.IO.IOException
        MsgBox("Could not read file")
    Finally
        'This command is executed whether or not the file can be read
        reader.Close()
    End Try
    

参照

処理手順

方法 : Visual Basic で Try...Catch ブロックを使用してコードを検査する

方法 : 例外の内部例外をチェックする

方法 : システム リソースを破棄する

概念

例外処理 (Visual Basic 6.0 ユーザー向け)

参照

Using ステートメント (Visual Basic)

その他の技術情報

例外処理のタスク