我正在研究以下程序对任务的异常处理。 程序运行正常,如果我使用Ctrl + F5运行则处理异常。但是,当我使用F5运行时,它在throw异常行停止。
static void Main(string[] args)
{
try
{
Task.Run(() => test()).Wait();
}
catch (Exception)
{
Console.WriteLine("Caught");
}
}
private static Task test()
{
throw new NotImplementedException();
}
我想知道我的测试程序是否正常工作(抓住异常)。这可能与我的Visual Studio设置有关(我使用的是VS2013)。 谢谢
答案 0 :(得分:0)
您明确抛出异常而不是捕获它。这会在构建解决方案时导致问题。 捕获使用try / catch
抛出的异常 private static Task test()
{
try
{
throw new NotImplementedException();
}
catch (NotImplementedException)
{
Console.WriteLine("NotImplementedException");
}
}
您也可以编写一般异常而不是NotImplementedException。