我遇到了一些异常代码的异常问题。
时我不想阻止我的线程private async Task ThrowSomeExceptionAsync()
{
//Some long running process would go here...
throw new Exception();
}
这是我想要调用的方法,并捕获异常。我正在使用Application.UnhandledException事件来捕获我的异常,但在这种情况下它并没有被捕获。
我尝试在要填充的返回的Task对象上等待Exception属性,但在任务完成时会阻塞。
使用ContinueWith方法阻止了阻塞,但是UndhandledException事件没有捕获从委托中抛出的任何异常。
如何以异步方式执行此代码,但仍使用我的UnhandledException事件进行错误处理?我错过了关于那个事件的一些基本概念吗?
答案 0 :(得分:1)
未将异常发送到UnhandledException事件的原因是该事件仅涵盖XAML框架中引发的异常。抛出异常的委托存在于XAML框架之外,并且不会传递它以便可以引发事件。解决方案似乎是一个静态类的形式,它将处理异常,并从委托和UnhandledException事件中调用它。