[解決済み】C#でfinallyを使用するのはなぜですか?
2022-04-13 04:50:28
質問
finallyブロックの中にあるものは、(ほぼ)常に実行されます。その中にコードを囲むか、囲まないでおくかの違いは何でしょうか?
どのように解決するのか?
finallyブロックの中のコードは、例外の有無にかかわらず実行されます。 これは、接続を閉じるなど、常に実行する必要がある特定のハウスキーピング関数に関して、非常に便利です。
さて、私は 推測 ご質問は、なぜそうする必要があるのかということですね。
try
{
doSomething();
}
catch
{
catchSomething();
}
finally
{
alwaysDoThis();
}
こんなことができるようになったら
try
{
doSomething();
}
catch
{
catchSomething();
}
alwaysDoThis();
その答えは、多くの場合、catch文の中のコードは例外を再スローするか、現在の関数から抜け出すかのどちらかだからです。 後者の場合、catch文の中のコードがreturnを発行するか新しい例外を投げると、"alwaysDoThis();"の呼び出しは実行されません。
関連
-
[解決済み] 投げる」と「投げる元」は違うのですか?
-
[解決済み] IDisposable インターフェースの正しい使用法
-
[解決済み] Try-catchは私のコードをスピードアップさせるか?
-
[解決済み] AddTransient、AddScoped、AddSingleton サービスの相違点
-
[解決済み] リフレクションを使ってジェネリックメソッドを呼び出すにはどうしたらいいですか?
-
[解決済み] C#のループ - breakとcontinue
-
[解決済み] ダイレクトキャスト vs 'as'演算子?
-
[解決済み] C#の文字列の前にある@は何ですか?
-
[解決済み】C#で例外をキャッチして再スローする理由とは?
-
[解決済み】try {...} finally {...} は良くて、try {...} catch{} はダメなのはなぜ?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】エラー。「戻り値を変更できません」 C#
-
[解決済み】GDI+、JPEG画像をMemoryStreamに変換する際にジェネリックエラーが発生しました。
-
[解決済み] 保護レベルによりアクセス不能になりました。
-
[解決済み] 'SubSonic.Schema .DatabaseColumn' 型のオブジェクトをシリアライズする際に、循環参照が検出されました。
-
[解決済み】MetadataException: 指定されたメタデータ・リソースをロードできない
-
[解決済み】OnCollisionEnter2Dが実行されない?
-
[解決済み】5.7.57 SMTP - MAIL FROMエラー時に匿名メールを送信するためにクライアントが認証されない
-
[解決済み】ランダムなブーリアンを生成する最速の方法
-
[解決済み】Unityでゲームオブジェクトのすべての子をループスルーして破壊する方法?
-
[解決済み] try catch finally ブロックはどのように機能するのですか?