次の方法で共有


方法 : finally ブロックを使用する

更新 : 2007 年 11 月

例外が発生すると、処理が中止され、最も近い例外ハンドラへ制御が渡されます。このため、常に呼び出されるはずのコード行が実行されないことがよくあります。例外がスローされても、ファイルのクローズなどの一部のリソース クリーンアップ処理は常に実行されます。クリーンアップ処理を常に実行するには、finally ブロックを使用します。例外がスローされたかどうかに関係なく、finally ブロックは常に実行されます。

try ブロックと catch ブロックを使用して ArgumentOutOfRangeException をキャッチするコード例を次に示します。Main メソッドは 2 つの配列を作成し、1 つの配列をもう 1 つの配列へコピーしようとします。このコピー操作により ArgumentOutOfRangeException が生成されるため、コンソールへエラーが出力されます。finally ブロックは、コピー操作の結果に関係なく実行されます。

使用例

Imports System
Class ArgumentOutOfRangeExample
   
   Public Shared Sub Main()
      Dim array1 As Integer() =  {0, 0}
      Dim array2 As Integer() =  {0, 0}
      Try
         Array.Copy(array1, array2, - 1)
      Catch e As ArgumentOutOfRangeException
         Console.WriteLine("Error: {0}", e)
      Finally
         Console.WriteLine("This statement is always executed.")
      End Try
   End Sub 'Main
End Class 'ArgumentOutOfRangeExample
using System;
class ArgumentOutOfRangeExample
   {
   static public void Main()
      {
      int[] array1={0,0};
      int[] array2={0,0};
         try
         {
         Array.Copy(array1,array2,-1);
         }
         catch (ArgumentOutOfRangeException e)
         {
         Console.WriteLine("Error: {0}",e);
         }
         finally
         {
         Console.WriteLine("This statement is always executed.");
         }
      }
   }

参照

処理手順

方法 : Try ブロックと Catch ブロックを使用して例外をキャッチする

方法 : 例外を明示的にスローする

方法 : ユーザー定義の例外を作成する

その他の技術情報

例外処理の基本事項