C# 中 finally 的用法
(247條消息) C# 中 finally 的用法_轉角撞倒豬的博客-CSDN博客_c# finally
當一個異常拋出時,它會改變程序的執行流程。因此不能保證一個語句結束后,它后面的語句一定會執行,在 C# 中這個問題可以用 finally 解決。
為了確保一個語句總是能執行(不管是否拋出異常),需要將該語句放到一個 finally 塊中,finally 要么緊接在 try 塊之后,要么緊接在 try 塊之后的最后一個 catch 處理程序之后。只要程序進入與一個 finally 塊關聯的 try 塊,則 finally 塊始終都會運行 -- 即使發生了一個異常。
代碼如下所示:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace CheckedAndUnchecked
{
class Program
{
static void Main(string[] args)
{
{
try
{
int a;
string b;
Console.WriteLine("請輸入一個整數");
b = Console.ReadLine();
a = int.Parse(b);
}
catch (Exception ex)
{
Console.WriteLine(ex);
}
finally
{
Console.WriteLine("finally塊內總是能運行到"); // 總是能執行到這里
}
}
}
}
}
因為 try 會捕捉異常,在此處輸入 1.0,格式不正確,則 runtime 會捕捉到異常,但 finally 塊內的代碼卻始終會執行。
執行后結果如下:
如果一個異常被拋出,且在本地捕捉到,則首先運行異常處理程序,然后運行 finally 塊;如果異常未能在本地捕捉到,則首先運行 finally 塊,再去上一級搜索一個匹配的異常處理程序并運行。
————————————————
版權聲明:本文為CSDN博主「轉角撞倒豬」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/seattle1215/article/details/6660955

浙公網安備 33010602011771號