最後阻止

try
{
    /* code that could throw an exception */
}
catch (Exception)
{
    /* handle the exception */
}
finally
{
    /* Code that will be executed, regardless if an exception was thrown / caught or not */
}

從檔案中讀取時,try / catch / finally 塊非常方便。
例如:

FileStream f = null;

try
{
    f = File.OpenRead("file.txt");
    /* process the file here */
}
finally
{
    f?.Close(); // f may be null, so use the null conditional operator.
}

試塊必須跟隨 catchfinally 塊。但是,由於沒有 catch 塊,執行將導致終止。在終止之前,將執行 finally 塊內的語句。

在檔案閱讀中我們可以使用 using 塊作為 FileStream(什麼 OpenRead 返回)實現 IDisposable

即使在 try 塊中存在 return 語句,finally 塊通常也會執行; 有幾種情況不會: