ついにC#

WBOY
リリース: 2024-09-03 15:22:12
オリジナル
779 人が閲覧しました

プログラミング中に現在実行中のメソッドを終了させる例外が原因でエラーが発生する可能性があり、そのメソッドは現在のメソッドの終了とともに閉じる必要があるファイルまたはネットワークを開いている可能性があります。このような問題を解決するために、C# には Final と呼ばれる特別な予約キーワードがあり、実行の停止を引き起こす条件に関係なく、try および catch ブロックの実行が停止すると、この Final のコード ブロックが実行されます。 try ブロックの実行が正常に停止するか例外によって停止するかは重要です。コードの Final ブロッ​​クが実行され、使用されていたリソースを解放することがコードの Final ブロッ​​クの主な目的であり、コードの try および catch ブロックの後に記述されます。 .

構文:

try
{
//Block of code
}
// this can be optional
catch
{
//Block of code
}
finally
{
//Block of code
}
ログイン後にコピー

C# でのfinally キーワードの動作

  • try ブロックに割り当てられたリソースは、コードの Final ブロッ​​クを使用してクリーンアップでき、コードの Final ブロッ​​クは、try ブロックで発生した例外に関係なく実行されます。
  • コードの Final ブロッ​​ク内のステートメントは、コントロールがコードの try ブロックを離れるときに実行されます。制御は、通常の実行、または goto ステートメント、break ステートメント、 continue ステートメント、return ステートメントの実行の一部として転送されます。
  • 例外処理がある場合、それに関連付けられたコードのfinallyブロックが確実に実行され、例外処理がない場合、コードのfinallyブロックの実行は例外アンワインド操作のトリガーに依存し、その操作は例外アンワインド操作のトリガーに依存します。コンピューターのセットアップ
  • C# の同じプログラム内に複数のコード ブロックを含めることはできません。
  • finally ブロックには goto ステートメント、break ステートメント、 continue ステートメント、return ステートメントがないため、コントロールはfinally ブロックから出ません。

最終的に C# を実装する例

以下は C# の例です 最後に:

例 #1

プログラム内でのコードの Final ブロッ​​クの使用法を示す C# プログラム。

コード:

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 ブロックと Final ブロッ​​クが書き込まれます。 try ブロックは例外をスローしますが、後でキャッチされます。その後、例外が処理されたかどうかに関係なく、Finally ブロックが実行されます。次に、ClassB というメソッドが定義されます。その後、例外が処理されるかどうかに関係なく、finally ブロックが実行されます。次に、main メソッドが呼び出されます。

例 #2

例外処理を行うプログラムでのfinally キーワードの使用法を示す C# プログラム。

コード:

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 メソッドが呼び出されます。次に、2 つの整数を格納するために 2 つの整数変数が定義されます。次に、try ブロックで例外が発生し、catch ブロックで処理される try and catch ブロックが定義されます。そして最後に、例外が処理されるかどうかに関係なく、ブロックが実行されます。

例 #3

例外処理を行わないプログラムでのfinally キーワードの使用法を示す C# プログラム。

コード:

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 メソッドが呼び出されます。次に、2 つの整数を格納するために 2 つの整数変数が定義されます。次に、try ブロックを定義します。その後、例外が処理されるかどうかに関係なく、最後にブロックが実行されます。プログラムの出力は上のスナップショットに示されています。

メリット

  1. 最後に、コード ブロックは、例外がスローされるかスローされないかなど、try ブロック内で何が起こったかに関係なく実行されます。return ステートメントがある場合は何も問題ありません。
  2. コードのfinallyブロックの主な用途は、tryブロック内で割り当てられた高価なリソースをすべて解放することです。
  3. 最後に、ブロックにより、スローされた例外に関係なく操作が実行されることが保証されます。

結論: このチュートリアルでは、定義、構文、プログラミング例とその出力を通じて、C# のfinally キーワードの概念を理解します。

おすすめ記事

これは C# のガイドです。ここでは、最終的に C# の概要とその利点、例およびコード実装について説明します。詳細については、他の推奨記事を参照することもできます –

  1. C# の乱数ジェネレーターとは何ですか?
  2. Java の静的コンストラクター |働く |アプリケーション
  3. C# の TextWriter |例
  4. C# で静的コンストラクターを動作させるには?

以上がついにC#の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート