發生例外狀況時,會將執行停止和控制提供給適當的例外狀況處理程式。 這通常表示您預期要執行的程式代碼行會被略過。 即使發生例外狀況,也需要進行一些資源清理,例如關閉檔案。 若要這樣做,您可以使用 區塊 finally
。
finally
不論是否擲回例外狀況,區塊一律會執行。
下列程式代碼範例會使用 try
/catch
區塊來擷取 ArgumentOutOfRangeException。 方法 Main
會建立兩個陣列,並嘗試將一個陣列複製到另一個陣列。 動作會產生錯誤,因為 ArgumentOutOfRangeException 被指定為 -1,錯誤會寫入主控台。 不論複製動作的結果為何,區塊 finally
都會執行。
class ArgumentOutOfRangeExample
{
public static void Main()
{
int[] array1 = {0, 0};
int[] array2 = {0, 0};
try
{
Array.Copy(array1, array2, -1);
}
catch (ArgumentOutOfRangeException e)
{
Console.WriteLine($"Error: {e}");
throw;
}
finally
{
Console.WriteLine("This statement is always executed.");
}
}
}
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)
Throw
Finally
Console.WriteLine("This statement is always executed.")
End Try
End Sub
End Class