C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

例外処理について


(過去ログ 5 を表示中)

[トピック内 5 記事 (1 - 5 表示)]  << 0 >>

■5634 / inTopicNo.1)  例外処理について
  
□投稿者/ iwaiwa 二等兵(4回)-(2006/08/19(Sat) 02:38:49)

分類:[C#] 


分類:[C#] 

こんにちは。C#初心者です。

C#に特化した質問ではないのですが、例外処理について
質問させてください。

次のようなプログラムがあるとします:
try
{
// 処理内容
}
catch (OleDbException ex)
{
// エラー処理
}

上のコードでは OleDbException でキャッチしようとしていますが、
これはもっと一般的なクラス Exception でもキャッチできますよね?

とすると、わざわざ、OleDbException とコードに書く理由って何なんでしょうか?
最初から、Exception クラスでキャッチするようにすればいいのでは?
という感じなのですが…。

多分、何か正当な理由があると思うので、ご存知の方、教えてください!

0
引用返信 編集キー/
■5635 / inTopicNo.2)  Re[1]: 例外処理について
□投稿者/ επιστημη 軍曹(73回)-(2006/08/19(Sat) 02:47:27)
επιστημη さんの Web サイト

分類:[C#] 

> try {
> // 処理内容
> } catch (OleDbException ex) {
> // エラー処理
> }
>
> 上のコードでは OleDbException でキャッチしようとしていますが、
> これはもっと一般的なクラス Exception でもキャッチできますよね?
>
> とすると、わざわざ、OleDbException とコードに書く理由って何なんでしょうか?

その「エラー処理」が "OleDb以外の例外" をうっかり処理しないように。


0
引用返信 編集キー/
■5636 / inTopicNo.3)  Re[2]: 例外処理について
□投稿者/ iwaiwa 二等兵(5回)-(2006/08/19(Sat) 03:25:24)

分類:[C#] 

ご回答ありがとうございました。
おっしゃって頂いたことが何となく分かったような気がします。

例えば、例にあげさせて頂いた様な:OleDbException
の場合だと、エラーが出た場合、ロールバック等の処理を
catch{....}の中に記述しますが、他の例外でロールバックが
発生しないように、、、という意味なのでしょうか。

例えば、エラーメッセージだけを表示したいという場合は、
全て一括りにして:

try
{
// 処理内容
}
catch (Exception ex)
{
// エラーメッセージを表示
MessageBox.Show(ex.Message);
}

みたいな感じでよろしいのでしょうか?
お手数ですが、よろしくお願い致します。

0
引用返信 編集キー/
■5680 / inTopicNo.4)  Re[3]: 例外処理について
□投稿者/ επιστημη 軍曹(74回)-(2006/08/19(Sat) 19:01:26)
επιστημη さんの Web サイト

分類:[C#] 

No5636に返信(iwaiwaさんの記事)
> 例えば、エラーメッセージだけを表示したいという場合は、
> 全て一括りにして:
>
> try {
> // 処理内容
> } catch (Exception ex) {
> // エラーメッセージを表示
> MessageBox.Show(ex.Message);
> }
>
> みたいな感じでよろしいのでしょうか?

うん。あるいはたとえば:

try {
// 処理内容
} catch (OleDbException oex ) {
// DB絡みのエラーはここで対処
} catch (Exception ex) {
// それ以外はこっち。
}

とか。


0
引用返信 編集キー/
■5704 / inTopicNo.5)  Re[4]: 例外処理について
□投稿者/ iwaiwa 二等兵(6回)-(2006/08/20(Sun) 05:00:51)

分類:[C#] 

なるほど。
ありがとうございました。
また何かありましたら、よろしくお願いします。

解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -