我在C#中有一段代码,它基本上就像以下一样......
WriteFile();
try {
RunTest();
} finally {
DeleteFile();
}
现在已经计划好了,即使失败了,它也会清理它留下的文件。这在不在调试模式下运行时有效(尽管它会弹出一条消息,询问我是否要调试程序或关闭它。关闭它会产生适当的结果)。
当我在调试模式下运行它并在RunTest内部遇到异常时,我似乎只有两个选项。在第一个中,我告诉调试停止。这相当于杀死程序并且finally
中的块没有运行(因此文件不会像它应该那样被删除)。如果我告诉它继续,它不会传播异常,相反,它只会在其他地方遇到异常。
在遇到异常后,有没有让调试模式像普通程序一样继续?
答案 0 :(得分:2)
从“调试”菜单中,选择“例外”(或使用 Ctrl + Alt + E )。这将打开一个对话框,您可以在“User-unhandled”列中取消选中相应的复选框,以查看在调试时不想停止的异常。 我相信这会使异常传播正常进行。你仍然可以在try或finally块中设置一个断点,看看发生了什么。
答案 1 :(得分:0)
如果设置了任何异常,请检查调试/异常。
另一种选择是处理事件Application.ThreadException(Windows窗体)或Application.UnhandledException(Silverlight等)并告诉应用程序继续或退出,具体取决于异常的严重性。