c++ - 在哪里定义异常类,在类内部还是在更高级别?

标签 c++ exception

异常类应该是可能抛出它们的类的一部分,还是应该存在于更高级别?

例如:

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/

相关文章:

python - 捕获导入模块中引发的异常

c++ - 添加到 map 的类中的互斥锁不起作用c++

c++ - 使用 strcpy 时从 'char' 到 'const char*' 的转换无效

c# - 在客户端处理自定义 ServiceStack 异常的正确/最佳方法是什么?

vb.net - 仅在发布时捕获异常

java - 获取 FileNotFoundException 即使我声明它被抛出

c++ - 获取子窗口句柄\C++

c++ - 使用 OpenCV 进行相机校准

c++ - 为什么 c/c++ 浮点类型的命名如此奇怪?

java - CopyOnWriteArrayList 抛出 CurrentModificationException