共用方式為


HOW TO:使用 Finally 區塊

更新:2007 年 11 月

當例外狀況發生時,執行會停止,而控制權會交給最接近的例外處理常式。這通常意謂著,有幾行您期待一定會被呼叫的程式碼沒有執行。某些資源清除 (例如關閉檔案) 必須一定要執行,即使擲回例外狀況。若要達成這點,您可以使用 Finally 區塊。不論是否擲回例外狀況,都一定會執行 Finally 區塊。

下列程式碼範例使用 Try/Catch 區塊來攔截 ArgumentOutOfRangeException。Main 方法建立兩個陣列,並嘗試複製其中一個給另一個。這動作產生 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.");
         }
      }
   }

請參閱

工作

HOW TO:使用 Try/Catch 區塊攔截例外狀況

HOW TO:明確擲回例外狀況

HOW TO:建立使用者定義的例外狀況

其他資源

例外處理基礎觀念