我对 C++ 异常有两个问题/反思/怀疑:
IMO 当我们考虑在代码中使用异常时,我们必须做出明确的决定——总是使用异常或根本不使用它们。这阐明了应用程序将如何处理错误并且代码将更易于阅读。我也总是假设,有些东西可能会抛出异常,我几乎在所有地方都放置了 try/catch 块。我的“规则”合理吗?
STL 类和算法抛出的所有异常是否都派生自
std::exception
? 我的异常类总是派生自标准类(runtime_error
等logic_error
)。我想知道是否可以安全地替换catch (...)
为catch(const std::exception& object)
,因为第二个总是提供有关异常原因的一些信息。