显示自定义异常消息

时间:2012-05-10 20:43:28

标签: c# asp.net exception exception-handling

我正在尝试显示自定义异常消息,同时保留内部异常。

以下是我的示例代码:

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) { }
}

当我运行此代码时,它会在调试器中显示自定义消息: Screenshot1

仍然将innerexception消息发送给客户端: Screenshot2

我在这里做错了什么?如何在显示自己的自定义消息时保留内部异常?

2 个答案:

答案 0 :(得分:3)

自定义用户看到的消息的方法是提供自定义错误页面。

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

答案 1 :(得分:0)

我怀疑是因为ApplicationException没有得到有效处理而且catch块抛出了一个异常,然后将其作为基本Exception来获取。然后调试器列出两个例外。

我认为这会给你所追求的行为(我作为控制台应用程序编写)

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) { }
}