异常类应该是可能抛出它们的类的一部分,还是应该存在于更高级别?
例如:
class Test
{
public:
class FooException: public ExceptionBase { };
void functionThrowingFooException();
};
或
class FooException: public ExceptionBase { };
class Test
{
public:
void functionThrowingFooException();
};
(functionThrowingFooException()
是唯一抛出 FooException
的函数)
最佳答案
异常确实是错误条件的模型。这些是针对每个类(class)的吗?如果需要从自由函数中引发异常怎么办?
如果您为各种问题状态提供不同的异常类型 - 分析/列出这些错误状态,在它们之后命名异常,将任何特定于状态的数据放入这些异常类型中,derive from a subclass of std::exception
,然后在单独的 header 中声明。
关于c++ - 在哪里定义异常类,在类内部还是在更高级别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4528362/