是否有任何方法可以捕获所有未处理的异常,甚至是在不同的TThread
中引发的异常?其思想是将这些异常写入日志文件。
根据评论,匆忙编写一些代码不会让你很快得到任何东西,所以聪明的钱会流向为你提供产品的工作。
为了公平起见,我不会指出我最喜欢的产品,而是提到我遇到的流行产品:
- madExcept
- EurekaLog
- SM Logging Suite**
然后是开源选项:
- JEDI代码库**,特别是JclDebug和JclHookExcept单元(参见此博客文章)
- debuggengine **(这更多的是手工练习,我理解-见wiki在这里)
- mORMot**,特别是这里描述的SynCommons单元
你也可以使用RtlUnwindProc
钩子异常,就像在Win32中演示的那样。
Application.OnException
, TThread.FatalException
等。
**我个人没有使用过这些产品,所以不知道他们是否在所有线程中拾取异常,但目前假设他们做