我有一些非常复杂的遗留代码,我一直在研究收集大块数据时的崩溃.我一直无法找到崩溃的确切原因,我正在尝试不同的方法来解决它或至少恢复得很好.我做的最后一件事是将崩溃的代码
try ... except cleanup(); end;
只是为了使它表现出来.但清理工作永远不会完成.在什么情况下不会发现异常?这可能是由于一些内存溢出或某些东西,因为应用程序正在收集相当多的数据.
哦,我添加尝试之前的例外是“访问冲突”(还有什么?),CPU窗口指向非常低的地址.任何想法或指针将不胜感激!
“非常低的地址”可能意味着有人试图在一个实际上并不存在的对象上调用虚方法(即’nil’).例如:的TStringList(无).Clear;
不过,第一部分非常神秘.我不知道怎么会发生这种情况.
我认为你应该尝试用madExcept来捕获这个例外.它从来没有让我失望过. (免责声明:我不使用D7.)