我有一些特殊的异常情况想要抛出和捕获,所以我想定义自己的异常类。
这方面的最佳做法是什么?我应该从 std::exception
还是 std::runtime_error
继承?
最佳答案
是的,inherit 是个好习惯来自 std::runtime_error
或 other standard exception classes喜欢 std::logic_error
, std::invalid_argument
依此类推,具体取决于是哪种异常。
如果所有异常都以某种方式从 std::exception
继承通过 catch(const std::exception &e) {...}
很容易捕获所有常见错误.如果您有几个独立的层次结构,这会变得更加复杂。从专门的异常类中派生出这些异常可以携带更多信息,但这究竟有多大用处取决于您如何处理异常。
关于c++ - 定义自己的异常类的最佳实践?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/688447/