【发布时间】:2012-07-13 11:43:21
【问题描述】:
考虑这个简单的控制台应用程序:
using System;
namespace Demo
{
class Program
{
static void Main(string[] args)
{
throw new Exception();
}
}
}
我在 Visual Studio 2010 或 Visual Studio 2012 Beta 的调试器下运行它。
当我这样做时,调试器自然会在异常处停止。到目前为止还好。
但是当我按 F5 继续(或选择调试|继续)时,它再次停止在同一个异常处。 我必须停止调试才能退出程序。当我按下 F5 时,我预计程序会退出。
有谁知道它为什么会这样?
[编辑]
我已将回复标记为答案,但要查看调试器行为的奇怪后果,请考虑以下代码:
using System;
namespace Demo
{
class Program
{
static void Main(string[] args)
{
AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;
throw new Exception();
}
static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
{
Console.WriteLine("Unhandled Exception.");
}
}
}
在调试器下运行它并按 F5 多次,然后查看输出。你会看到很多“未处理的异常”消息,尽管代码实际上只抛出了一次。调试器导致异常多次抛出!这就是我觉得奇怪的地方。
【问题讨论】:
标签: c# visual-studio-2010