- PR -

エラーメッセージボックスを出す場所

1
投稿者投稿内容
うちうせん
ベテラン
会議室デビュー日: 2003/08/08
投稿数: 96
お住まい・勤務地: 福岡県
投稿日時: 2007-05-21 18:02
こんにちは。
内容が環境に依存しないので、板違いかもしれませんがここで質問します。

ある複雑な処理を行う関数があって、その中で細分化された毎にまた関数を呼んでいるとします。
その細分化された関数内でエラーが発生した場合、その場でエラーメッセージボックスを出すほうがいいのか、それともエラーコードの様な情報を呼び元の関数に返し、本体でエラーメッセージボックスを出すほうがいいのか・・・どちらでしょうか?
もしかしたら、どちらでもいいということかもしれませんが、その場合は投稿の様にどちらを主に使っているという意見などお願いします。
どちらかがよくない方法だったらいけないので、投稿形式にはしていません。
以下にサンプルのようなものを書いておきます


・その場でメッセージを表示
コード:
void func_A()
{
 func_B();
}
void func_B()
{
 //エラー発生
 MessageBox(...);
}



・呼び元でメッセージを表示
コード:
void func_A()
{
 int err;
 err = func_B();
 if(err = -1 ) MessageBox(...);
}
int func_B()
{
 //エラー発生
 if(エラー発生) return -1;

 return 0;
}





Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2007-05-21 18:07
その場で表示してしまうと、その関数はプラットフォームに依存してしまいます。なので、私はそういう使い方をしません。
_________________
burton999
ぬし
会議室デビュー日: 2003/10/06
投稿数: 898
お住まい・勤務地: 東京
投稿日時: 2007-05-21 18:20
私もJitta氏と同じ意見です。
エラーメッセージなどは、View(表示)に関わるものなので、上位のプレゼンテーション層で処理します。
とっちゃん
大ベテラン
会議室デビュー日: 2005/07/19
投稿数: 203
投稿日時: 2007-05-21 19:32
通常はエラーコードなどを返すなり、例外を投げるなりで末端部分ではメッセージは出さないですね。

そうしないと、再利用性が下がってしまうし、メッセージボックスとなればそのキャプションはどうする?
などという、環境依存問題も発生しますし。

末端処理までがべったりそのアプリに依存している場合のみこの限りではありませんが。

_________________
// とっちゃん(高萩 俊行)@わんくま同盟
// とっちゃん’Blog
// MS-MVP for Developer Tools - Visual C++
// WindowsInstallerの話題はhttp://www.freeml.com/msiまで
うちうせん
ベテラン
会議室デビュー日: 2003/08/08
投稿数: 96
お住まい・勤務地: 福岡県
投稿日時: 2007-05-22 09:22
Jittaさん
burton999さん
とっちゃんさん
返答ありがとうございます。

システムにもよるかもしれませんが、やはり上位での表示がいいようですね。
参考になりました。

_________________
by うちうせん
1

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