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

但仍将内部异常消息发送给客户端: 截图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 回答