• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:c# の try の入れ子)

C#のtryの入れ子についての疑問

このQ&Aのポイント
  • C#でのtry文の入れ子について疑問があります。具体的には、try文の入れ子でエラーが発生した場合、どのcatch文が処理されるのか、そしてfinally文はどの段階で処理されるのかが気になります。
  • 例えば、メソッドaaa()内でメソッドbbb()を呼び出し、bbb()内でエラーが発生した場合、aaa()のcatch文が処理されるのか、bbb()のcatch文が処理されるのかが分かりません。同様に、finally文はどの段階で処理されるのかも知りたいです。
  • このような場合、エラーが発生した時点で処理が終了してしまうのか、または例外が発生しても処理が続行されるのか理解できません。C#のtry文の入れ子について詳しく教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • wormhole
  • ベストアンサー率28% (1626/5665)
回答No.3

エラー箇所でスローされたものと、catchでキャッチするものにもよるので回答できません。 基本は次のurlでも読んでください。 http://msdn.microsoft.com/ja-jp/library/s7fekhdy%28v=vs.80%29.aspx

その他の回答 (2)

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.2

まず, この質問文にあるプログラムは間違っています. 「finally()」という書き方はできませんし, 「catch()」も文法的に不正です. そして, この「catch()」が不正であることから, 「このプログラムにおいて」「catch() は bbbb() の方で実行され」るかどうかを判断することは不可能です. だから #1 では「発生した例外を受け取れる catch が受け取る」という, 一般的な原則しか書いていません... ん~, 正確には 「発生した例外を受け取れる, 一番内側の try に付随する catch が受け取る」 か. finally は (ここも文法的には不正だが) 最終的に両方とも実行されます.

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

finary じゃなくって finally では? そして発生した例外を受け取れる catch が受け取る. finally の部分は, try ブロックを抜け出すときには必ず実行される.

yamada009
質問者

補足

finally の間違いです。 それで結局catch() は bbbb() の方で実行され finally() は aaaa() bbbb() の両方で実行されるということでしょうか?