【发布时间】:2014-01-31 15:03:40
【问题描述】:
我们使用的 API 严重依赖异常来返回非异常结果。这方面的一个例子(在许多例子中)是为了确定用户是否在一组人中,我们必须尝试获取该组并解释由此产生的“无组”异常。此外,所有这些异常都是一种类型。
我们正在使用大量多线程的 C++11 开发一个大型而复杂的项目,此外,我们正在研究的领域涉及网络通信,因此有时我们必须同时调试多个实例。
我们的问题以及我的问题的基础是由于非异常异常对我们的工作流程的影响而出现的。我们不愿关闭 API 抛出的单一异常类型的第一次机会异常报告,因为这意味着如果我们调用 API 时编码人员错过了 try/catch 块,我们将展开主要和放松调用的上下文。如果我们将异常保留在简单的非异常行为上,例如上面示例中描述的行为,可能会导致多次中断(初始抛出和可能的一些重新抛出),我们只能验证这实际上是非通过查询堆栈(通常是非主线程的堆栈)来查找引发异常的 API 调用来查找异常异常。
我相信我们的用例并不是那么独特,以至于其他人不会遇到相同的工作流问题,所以我的问题是我们应该如何改变我们的调试过程,以便更好地应对非异常异常带来的问题,如上所述。
我们目前仅限于使用 Visual Studio(或可能是 WinDbg)进行调试。
【问题讨论】:
标签: c++ exception visual-studio-debugging