我有一个奇怪的问题:我有一些代码被try..捕捉
在catch片段中,我将对所发生的事情进行截图。
问题是,异常在错误条件之后需要几分钟才会被抛出,所以我得到了一个完全不同的截图。
是什么导致异常被抛出需要几分钟的时间?
谢谢
添加的代码:
WaitAndActivateWindow调用AutoIT将焦点放在有问题的窗口上(在整个代码中都会调用该方法,加载时间约为0.2秒。
try
{
// Load AutoIt defaults.
LoadDefaults();
// HandleInstallation();
// Some more actions here
}
catch (Exception e)
{
this.WaitAndActivateWindow();
ScreenShotUtility.TakeScreenShot(@"UnhandledError");
Log(e.ToString());
throw;
}
发布于 2011-04-13 22:46:58
抛出异常的时间不太可能是4分钟。在我看来,更有可能的是,在你的异常被捕获之前,由于堆栈正在解开而被释放的其他东西导致了延迟。
我会怀疑:
使用调试器运行代码,并使用一些适当放置的断点,可以迅速缩小问题的范围。@forsvarir关于在抛出和捕获异常时捕获时间戳的建议也会给你提供帮助。
发布于 2011-04-13 22:35:47
对于我来说,抛出异常需要很长时间的最常见情况是,操作系统(在我的例子中是most )正在向文件中写入核心转储(我的Mac已配置为执行此操作)。这只是一个值得关注的地方,但我相信还有很多其他的可能性。(问题中的更多信息可能会有所帮助。)
https://stackoverflow.com/questions/5650960
复制相似问题