【问题标题】:Exception handling plan for c++ plugin applicationc++插件应用异常处理方案
【发布时间】:2011-06-13 14:38:10
【问题描述】:

我们正在为 C++ MFC 应用程序开发插件 dll。在我们的插件函数中,如果它们不能满足它的后置条件,它们就会抛出异常。通常异常会被更高的上下文捕获,但有时它们会传播到事件处理程序并且应用程序崩溃。因此,我正在编写每个事件处理程序的 try/catch 块,以避免应用程序崩溃并显示发生意外错误的信息性消息。我在想是否有办法跳过这个。也许使用 set_unexpected 函数设置全局意外处理程序,但这又是不可靠的,第三方库之类的其他人可以覆盖我的异常处理程序。大家有什么建议

【问题讨论】:

    标签: c++ exception exception-handling


    【解决方案1】:

    当跨越“单元”边界(例如 C-C++ 接口或共享对象边界)时,需要捕获异常并以接口双方都能识别的方式传播回去。不幸的是,正如您发现的那样,没有简单的方法可以做到这一点。

    【讨论】:

    • 返回错误值(类似于 COM 处理它的方式)效果相对较好。您只需确保在函数中处理可能抛出的异常,并且所有信息都会返回(甚至可以从捕获的异常中复制必要的信息并传递它)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-11
    • 2011-04-27
    • 2011-09-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多