如何只从UnhandledException获取消息?

时间:2016-04-27 16:02:45

标签: c#

我使用UndhandledException提供的AppDomain,我所做的基本上是这样的:

static void Main(string[] args)
{
        AppDomain.CurrentDomain.UnhandledException += UnhandledExceptionTrapper;
}

static void UnhandledExceptionTrapper(object sender, UnhandledExceptionEventArgs e)
{
   e.ExceptionObject.Message? <- there is no message
   Console.WriteLine(e.ExceptionObject.ToString());
   Console.WriteLine("Press a key for exit.");
   Console.ReadLine();
   Environment.Exit(1);
}

你怎么看我无法访问消息属性,但是如果我设置了一个断点,我可以在e变量上看到Message属性,为什么我可以&#39 ;用这个?

1 个答案:

答案 0 :(得分:5)

问题是ExceptionObject是一个对象。您可以将其强制转换为Exception以获取Message

var exception = (e.ExceptionObject as Exception);
if (exception != null) 
{
   message =  exception.Message;
}

或MSDN建议以这种方式投射

Exception exception = (Exception) e.ExceptionObject;
var message = exception.Message;