【问题标题】:Default exception handler body默认异常处理程序主体
【发布时间】:2016-06-05 18:09:22
【问题描述】:

我有一个自定义异常类,继承自 Exception 和一个引发异常的控制台应用程序。我的自定义异常覆盖了ToString()方法,但是当抛出异常时,消息和堆栈跟踪打印到控制台,但是似乎没有调用覆盖的ToString()方法。

我知道如何创建默认异常处理程序 (.NET Global exception handler in console application)。但是,如果未指定自定义处理程序,则控制台应用程序的默认处理程序的主体是什么?

【问题讨论】:

  • 您能否在代码中显示您捕获未处理异常的位置?

标签: c# exception exception-handling console-application tostring


【解决方案1】:

我不确定你想通过重写.ToString() 方法来实现什么,但如果你尝试设置自定义消息,我建议使用构造函数:

public class CustomException : Exception 
{
    public CustomException(string message) : base(message)
    {

    }
}

或覆盖Message属性:

public class CustomException : Exception 
{
    public override string Message
    {
        get
        {
            return "Something bad happened";
        }
    }
}

回答有关UnhandledException event 的问题 - 我相信当为特定域发现未处理的异常时,处理程序会在CLR 级别启动,因此很难查看其上是否有默认处理程序。我想即使拥有这些也没有意义。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多