開発 cのfinallyブロックとは何ですか? -techopediaからの定義

cのfinallyブロックとは何ですか? -techopediaからの定義

目次:

Anonim

定義-最終ブロックとはどういう意味ですか?

C#のコンテキストでのfinallyブロックは、アプリケーションの実行中に発生する可能性のある予期しないイベントや例外に関係なく、常に実行されるステートメントのブロックを指します。 オプションで「try / catch」ブロックとともに使用され、アプリケーションの実行の成功または失敗に関係なく、「try」ブロックを終了する前に実行する必要があるコードの実行を保証します。


finallyブロックの実行は、通常は限られた数量で利用可能なデータベース接続などのリソースを解放することを目的としています。 このメカニズムにより、リソースの廃棄は、ガベージコレクタのファイナライズ操作よりも早く行われ、それによってメモリが最適化されます。

Techopediaがfinallyブロックについて説明します

finallyブロックのコードを使用して、例外が発生するとすぐに処理し、「try」ブロックに割り当てられたメモリをクリーンアップするか、「try」ブロックで使用される外部リソース(ファイルハンドルなど)を保持するオブジェクトを破棄できます。 また、finallyブロックは、例外の発生前にカーソルを通常の状態にリセットするようなハウスキーピングタスクのパフォーマンスを促進します。


一般に、finallyブロック内のコードは、「break」、「goto」、「continue」、または「return」ステートメントの実行の結果、または通常の実行の結果としてコントロールがtryブロックを終了するときに実行されます。 tryステートメントからの例外。


tryブロックで例外が発生するたびに、例外の原因となった行から最も近いcatchブロック(例外ハンドラー)に制御が渡され、finallyブロックに制御が渡されます。 また、例外がcatchブロックで再スローされると、制御はfinallyブロックに移ります。 したがって、例外が発生した行に続くコードはスキップされます。


finallyブロックで例外を明示的にスローしないでください。 finallyブロックの実行中に例外が発生した場合、例外がスローされたポイントの後のコードは実行されず、例外は外側の外側のtryブロックに伝播します。 finallyブロックがすでに別の例外を処理している場合、現在の例外の処理は終了します。


これは有効な転送ではないため、finallyブロックへの実行を明示的に転送しないように注意する必要があります。

この定義はC#のコンテキストで記述されました
cのfinallyブロックとは何ですか? -techopediaからの定義