■No23084 (レン さん) に返信
> また例外クラスを作成して、
> メソッドでは例外を発生させて、使用する側ではそれをキャッチしても良いという
> ことですよね?
ああ、ごめん。
原則として、Exception.Message を、エンド ユーザに見せてはいけません。
これは、開発者用にデザインされているべきです。
しかし、時と場合によっては、エンド ユーザに見せたい場合があります。
この、「見せる」「見せない」の区別を、例外クラスによって行いましょう。
.NET Framwork 1.x の時は、ApplicationException から派生することが
推奨されていましたが、Base Class Library にその推奨にあわないクラスがあることから、
2.0 からはその推奨が無くなっています。
しかし、上記の理由で、「エンド ユーザに見せても良い例外」を、
ひとつのクラスから派生することを勧めます。
pubic class MyExceptionBase : Exception
{
// 開発者向けメッセージはこちらへ
public string Message4dev {
get;
set;
}
public override string ToString(void) {
適宜
}
}
↑
このクラスから派生したクラスを用いれば、
try {
何かの処理
} catch (MyExceptionBase e) {
エンド ユーザにそのまま見せても良いメッセージ
} catch (Exception e) {
エンド ユーザには「ご迷惑をおかけしております」だけ見せ、
メッセージ内容はログに落とす。
}
↑
のような使い分けができる。
|