C#終於

WBOY
發布: 2024-09-03 15:22:12
原創
756 人瀏覽過

由於異常結束了當前正在運行的方法,並且該方法可能打開了一個文件或網絡,需要在當前方法結束時關閉,因此可能會導致錯誤。為了克服這樣的問題,我們在C#中有一個特殊的保留關鍵字,叫做Finally,當try和catch區塊的執行停止時,就會執行這個Finally程式碼區塊,無論什麼情況導致執行停止,它都不會停止。不管try塊的執行是正常停止還是異常停止。 Finally程式碼區塊的主要目的是執行並釋放所佔用的資源,它寫在try和catch程式碼區塊之後.

文法:

try
{
//Block of code
}
// this can be optional
catch
{
//Block of code
}
finally
{
//Block of code
}
登入後複製

C# 中finally 關鍵字的工作

  • 在try區塊中分配的任何資源都可以透過使用Finally程式碼區塊來清理,並且無論try區塊中引發異常,Finally程式碼區塊都會運作。
  • Finally 程式碼區塊中的語句在控制項離開 try 程式碼區塊時執行。控制權作為正常執行或 goto 語句、break 語句、 continue 語句或 return 語句執行的一部分進行轉移。
  • 如果有異常處理,則與其關聯的finally程式碼區塊肯定會運行;如果沒有異常處理,則finally程式碼區塊的運作取決於異常展開操作的觸發,而異常展開操作又取決於異常展開操作的觸發設定計算機。
  • C# 中同一程式中不能有多個 Final 程式碼區塊。
  • 控制項不會離開finally區塊,因為finally區塊中沒有goto語句、break語句、continue語句或return語句。

最終實作 C# 的範例

下面是C#的例子最後:

範例#1

C# 程序,示範在程式中使用 Final 程式碼區塊。

代碼:

using System;
//a class called program is defined
class program
{
// a method called ClassA() is defined
static void ClassA()
{
try
{
Console.WriteLine("We are inside class A");
//An exception is thrown
throw new Exception("An exception is thrown");
}
//finally block is executed regardless of the exception is handled or not
finally
{
Console.WriteLine("This is the finally block of Class A");
}
}
// a method called ClassB() is defined
static void ClassB()
{
try
{
Console.WriteLine("We are Inside class B");
return;
}
//finally block is executed regardless of the exception is handled or not
finally
{
Console.WriteLine("This is the finally block of class B");
}
}
// Main Method is called
public static void Main(String[] args)
{
try
{
ClassA();
}
catch (Exception)
{
Console.WriteLine("The exception that is thrown is caught");
}
ClassB();
}
}
登入後複製

輸出:

C#終於

說明:上面的程式中,程式就是定義的類別。然後定義了一個名為 ClassA 的方法,其中編寫了 try 和 finally 程式碼區塊。 try 區塊拋出一個稍後被捕獲的異常。然後無論異常是否被處理,都會執行Finally區塊。然後定義了一個名為ClassB的方法。然後無論異常是否被處理,都會執行finally區塊。然後呼叫main方法。

範例#2

C# 程序,示範在具有異常處理的程序中使用finally關鍵字。

代碼:

using System;
//a class called program is defined
public class program
{
// Main Method is called
static public void Main()
{
// two integer variables are defined to store two integers
intnum = 10;
int div = 0;
//try and catch block is defined in which an exception is raised by try block and is handled by catch block
try
{
int op = num / div;
}
catch (DivideByZeroException)
{
Console.WriteLine("The divisor can not be zero because it is impossible to divide by 0");
}
// finally block is executed regardless of the exception is handled or not
finally
{
Console.WriteLine("We are in the finally block");
}
}
}
登入後複製

輸出:

C#終於

說明:在上面的程式中,定義了一個名為program的類別。然後呼叫 main 方法。然後定義兩個整數變數來儲存兩個整數。然後定義try和catch區塊,其中異常由try區塊引發並由catch區塊處理。然後無論異常是否被處理,都會執行finally區塊。

範例 #3

C# 程序,示範在沒有異常處理的程序中使用finally關鍵字。

代碼:

using System;
//a class called program is defined
public class program
{
// Main Method is called
static public void Main()
{
// two integer variables are defined to store two integers
intnum = 10;
int div = 0;
//try and catch block is defined in which an exception is raised by try block and is handled by catch block
try
{
int op = num / div;
}
// finally block is executed regardless of the exception is handled or not
finally
{
Console.WriteLine("We are in the finally block");
}
}
}
登入後複製

輸出:

C#終於

說明:在上面的程式中,定義了一個名為program的類別。然後呼叫 main 方法。然後定義兩個整數變數來儲存兩個整數。然後定義try塊。然後無論異常是否被處理,都會執行finally區塊。程式的輸出如上面的快照所示。

優點

  1. 最後,無論try區塊內發生什麼,例如是否拋出異常,如果有return語句,都會執行該程式碼區塊。
  2. finally 程式碼區塊的主要用途是釋放 try 區塊中所有分配的昂貴資源。
  3. 最後,block 確保無論拋出任何例外都會執行操作。

結論:在本教程中,我們透過定義、語法、程式設計範例及其輸出來了解 C# 中的 finally 關鍵字的概念。

推薦文章

這是 C# 最終指南。在這裡,我們最後討論 C# 的簡介及其優點以及範例和程式碼實作。您也可以瀏覽我們其他推薦的文章以了解更多資訊 –

  1. C# 中的隨機數產生器是什麼?
  2. Java 中的靜態建構子 |工作|應用
  3. C# 中的 TextWriter |範例
  4. 如何在 C# 中使用靜態建構子?

以上是C#終於的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!