我正在尝试显示自定义异常消息,同时保留内部异常。
以下是我的示例代码:
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) { }
}
当我运行此代码时,它会在调试器中显示自定义消息:
仍然将innerexception消息发送给客户端:
我在这里做错了什么?如何在显示自己的自定义消息时保留内部异常?
答案 0 :(得分:3)
自定义用户看到的消息的方法是提供自定义错误页面。
答案 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) { }
}