例外をスローしたいのですが、カスタムメッセージとスタックトレースを残したいと思います。私は様々なスレッドを行ってきました。例外をスローしますがスタックトレースを保持します
**The remote server returned an error: (401) Unauthorized.**
[WebException: The remote server returned an error: (401) Unauthorized.]
original stack trace
[NewException: newMessage]
New Stack Trace
良いことは、すべてが画面上に存在しているである:最後appraochは死の画面上で、出力(カスタム例外基底クラスのコンストラクタを呼び出すコンストラクタで)使用されている
catch (Exception ex)
{
throw; // Message is read only but stacktrace persist
throw ex; // Message is readonly and strack trace also blows .. worst!
throw new CustomException("My exception");// Message can be overridden but stacktrace lost
throw new CustomException("My message",ex);// same as above. However if this constructor in exception class calls same constructor of base class then .. see below
}
は何かのようなものです。しかし、上に私の例外、すなわち「新しいメッセージ」を表示し、元のメッセージではないことを望みます。
私の質問を調整します:元のスタックトレースが表示されますが、カスタムエラーメッセージが表示されます。
が、これは例外を返すWebサービスですか? – Oded
私の例では、それは確かにwebservice呼び出しです。しかし、例外はDivisionByZeroやsqlExceptionなどのようなものであったため、重要ではありません。アイデアは元のスタックトレースをユーザーに知らせることですが、開発者はデフォルトの例外メッセージをより役立つものにカスタマイズすることもできます。 – helloworld
いいえ、それは重要ではありません。 Webサービスのフレームワークには、例外に関する独自のアイデアがあります。 –