我研究了
this article on MSDN,以及有关此主题的SO的一些问题/答案,但无法解释为什么下面的代码不起作用(在示例控制台应用程序中).
根据MSDN,预计会抛出AggregateException,它将包含一个带有hello消息的内部异常.相反,这个hello异常未处理.它发生在调试器内部.
如果按“继续”或“独立运行”,则按预期工作.有没有办法避免在VS中一直按下继续?毕竟,Try … Catch块中的任何内容都被认为是在单线程编程模型中处理的.否则,调试可能是一场噩梦.
VB.NET
Sub Main() Try Task.Factory.StartNew(AddressOf TaskThatThrowsException).Wait() Catch ex As AggregateException Console.WriteLine(ex.ToString) 'does not get here until you hit Continue End Try End Sub Private Sub TaskThatThrowsException() Throw New Exception("hello") 'exception was unhandled End Sub
C#
namespace ConsoleApplication1 { class Program { static void Main(string[] args) { try { Task.Factory.StartNew(TaskThatThrowsException).Wait(); } catch (AggregateException ex) { Console.WriteLine(ex.ToString()); //never gets here } } static void TaskThatThrowsException() { throw new Exception("hello"); //exception was unhandled } } }
我有什么明显的遗失吗?
解决方法
原文地址:https://www.jb51.cc/csharp/100178.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。