- PR -

try-catchの使用について

1
投稿者投稿内容
k’s
会議室デビュー日: 2008/10/04
投稿数: 7
投稿日時: 2008-10-06 23:02
こんにちは今回はプログラムえを組んでいたところで疑問に思って質問させてもらいました、開発言語はC#を使っています。

C#にはエラーが起きる可能性がある処理をする場合にエラーに対応させるためにtry{}-catch{}文を使ってtryにエラーが起きる可能性がある処理、catchにそれに対応する処理を入力してアプリケーションを動かしますが、もしtryの中でさらにtry{}-catch{}を使った場合きちんと処理させることができるの疑問に思いました。
これだけではわからないと思うのでコードで説明すると

try{
エラーが発生する可能性がある処理A
try{
   エラーが発生する可能性がある処理B
  }
catch{
処理Bのエラー発生時の処理
}
catch{
処理Aのエラー発生時の処理
}

とした場合きちんと処理Bに対するエラー処理、処理Aに対するエラー処理を行うことができるのかということです。
実は今現在コーディングしているプログラムでどうもこの部分の動作があやしくいろいろ人に聞いてみた結果ここにたどり着きました。
即出だったらすみません、どなたかご教授ください。
よろしくお願いします。




[ メッセージ編集済み 編集者: k’s 編集日時 2008-10-06 23:03 ]

[ メッセージ編集済み 編集者: k’s 編集日時 2008-10-06 23:03 ]
よこけん
大ベテラン
会議室デビュー日: 2006/01/31
投稿数: 216
投稿日時: 2008-10-07 00:58
try の中に try-catch を置いても全く問題ありません。
ただし、k’s さんが期待している動作と実際の動作が異なっている可能性はありますね。
_________________
C#と諸々
さかもと
ぬし
会議室デビュー日: 2004/05/14
投稿数: 586
投稿日時: 2008-10-07 07:55
さかもとと申します。

エラーが発生する可能性がある処理A、Bの「発生原因(例外の種類)」が常に一定で明確であるというのであればよいのかも知れませんが、そもそも「明確」であるのであれば、あらかじめロジック上でエラーになりうる原因を除いておく方が良いかと思います。

「例外の要因は様々と考えられるけどとにかくエラーが起こったら処理B」という分岐の手段でtry-catchを使ってしまうと想定とちがう例外を拾ってしまいエラー原因が分からない、ということにもなりかねません。
_________________
------------------------------------------
拝啓、さかもとと申します♪
1

スキルアップ/キャリアアップ(JOB@IT)