如何在应用程序级别捕获所有异常,甚至在异常线程中引发异常?

时间:2016-10-14 00:26:08

标签: delphi

有没有办法捕获所有未处理的异常,甚至在异常TThread中引发异常?我们的想法是将这些异常写入日志文件。

注意:解决方案必须在iOs / Android下运行...

1 个答案:

答案 0 :(得分:5)

根据评论,挖出一些代码会让你无处可去,所以聪明的钱会为你找到一份产品。

为了公平起见,我不会指出你最喜欢的,但提到我遇到过的热门产品:

然后有开源选项:

您还可以使用RtlUnwindProc挂钩异常,如this SO answer中针对Win32所示。

但是,据我所知,所有这些选项的主要缺点是它们目标Windows平台。如果您的目标是移动设备(Android,iOS)或Macintosh,那么您将不得不卷起袖子并确保将处理程序放入您创建的每个主题中并熟悉Application.OnExceptionTThread.FatalException等等人

**我没有亲自使用这些产品,所以不知道他们是否在所有线程中都有异常,但目前假设他们这样做