我应该在所有异常导致终止的程序中使用异常处理吗?

时间:2014-12-03 20:36:44

标签: c++ exception-handling

我目前正在开发一个模拟工具。该工具不是交互式的。所有可能的异常都是由编程错误(开发期间)或输入数据损坏引起的。如果发生异常,程序必须终止,因为运行起来毫无意义。

所以我有两个选择:

  1. 使用C ++异常处理。 Pro:调试时崩溃时我得到一个堆栈跟踪。 Contra:严重(?)性能开销。
  2. 调用终止程序的错误函数。亲:快速而简单。 Contra:没有堆栈跟踪。
  3. 问题:对性能的影响有多严重?一些例外可能源于非常时间关键的功能。

    如果我的考虑有任何根本性的错误,请告诉我。

1 个答案:

答案 0 :(得分:1)

正如@doc建议我可能会使用assert来跟踪与输入无关的编程错误。然后我会使用与输入相关的错误的异常。这不仅仅是异常是什么,如果您碰巧遇到一种输入错误,您可以从中恢复异常框架已经存在。