【发布时间】:2013-02-06 19:08:32
【问题描述】:
我有一个 C# 应用程序 App A,它通过 P/Invoke 调用 C++ (Qt) DLL App B。假设我不能以任何方式编辑App B,但我知道App B 在一组条件下抛出Out of Memory Exception,在将输入从App A 传递到@ 之前,我可以复制但不能准确测试987654327@。此异常不会对App A 构成任何威胁,如果App B 可以以某种方式“重置”,则可以忽略此异常,但是当App B 崩溃时,它会调用abort(),这反过来又会导致App A 的运行时终止。
我如何防止App B 不可避免的、不可预测的和通常平凡的崩溃影响App A?
注意事项:
- 抛出此错误时,已实现的
UnhandledExceptionHandler将被忽略。 -
App B因 QtWebkit 中的错误而崩溃,App B可以通过删除过大的对象并返回 null 来处理该错误。 -
App A不会报告为内存不足,并且机器有足够的内存来多次执行App B的操作,无论错误如何,但无论出于何种原因,该内存显然都没有分配给App B.
【问题讨论】: