1

内部例外を保持しながら、カスタム例外メッセージを表示しようとしています。

これが私のサンプルコードです:

public class Class1
{
public Class1()
{
    try
    {
        throw new WebException("Initial Exception");
    }
    catch (WebException we)
    {
        throw new myException("Custom Message", we);
    }
}
}

public class myException : WebException
{
public myException(string msg, WebException e) : base(msg, e) { }
}

このコードを実行すると、デバッガーにカスタムメッセージが表示されます。 スクリーンショット1

それでも、innerexceptionメッセージをクライアントに送信します。 スクリーンショット2

私はここで何が間違っているのですか?独自のカスタムメッセージを表示しながら、内部例外を保持するにはどうすればよいですか?

4

2 に答える 2

3

ユーザーに表示されるメッセージをカスタマイズする方法は、カスタムエラーページを提供することです。

http://support.microsoft.com/kb/306355

于 2012-05-10T22:08:23.433 に答える
0

これは、ApplicationExceptionが効果的に処理されておらず、catchブロックが例外をスローし、それが基本例外として取得されているためだと思われます。次に、デバッガーは両方の例外をリストします。

これはあなたが求めている振る舞いを与えると思います(私はコンソールアプリとして書いています)

using System;

namespace ConsoleApplication2
{
    class Program
    {
    static void Main(string[] args)
    {
        myException exception;
        try
        {
            throw new ApplicationException("Initial Exception");
        }
        catch (ApplicationException e)
        {
            exception = new myException("Custom Message", e);
        }
        catch (Exception e)
        {
            throw e;
        }

        if (exception != null)
        {
            throw exception;
        }
    }
}
}


public class myException : ApplicationException
{
public myException(string msg, ApplicationException e) : base(msg, e) { }
}
于 2012-05-10T21:08:35.793 に答える