c++ - 定义自己的异常类的最佳实践?

标签 c++ exception inheritance error-handling

我有一些特殊的异常情况想要抛出和捕获,所以我想定义自己的异常类。

这方面的最佳做法是什么?我应该从 std::exception 还是 std::runtime_error 继承?

最佳答案

是的,inherit 是个好习惯来自 std::runtime_errorother standard exception classes喜欢 std::logic_error , std::invalid_argument依此类推,具体取决于是哪种异常。

如果所有异常都以某种方式从 std::exception 继承通过 catch(const std::exception &e) {...} 很容易捕获所有常见错误.如果您有几个独立的层次结构,这会变得更加复杂。从专门的异常类中派生出这些异常可以携带更多信息,但这究竟有多大用处取决于您如何处理异常。

关于c++ - 定义自己的异常类的最佳实践?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/688447/

相关文章:

c++ - IE9 无法在 BHO 中的 HTMLWindow2 上触发 onscroll 事件

c# - 创建新行并从小型 CSV 文件添加到数据表时出现 OOM 异常

c# - 子字符串索引和长度必须引用字符串中的某个位置

xml - Odoo:字段上的条件不可见属性仅在一个方向上有效?

swift - 将 swift 中的对象层次结构映射到 firebase

c++ - 命令行参数 - int 而不是 ascii

c++ - 如何在没有 fpu 的情况下使用 armv7 编译 node-v4.2.4?

c++ - 在 C++ 中读取文件时有没有办法忽略文件​​结尾字符?

delphi - 在 Delphi 2009 中 Hook 堆栈跟踪

java - 当将 OrderColumn 与两个列表一起使用时,Hibernate 会抛出 "Repeated column in mapping for entity"