小编Car*_* HR的帖子

C++ 构造函数:当 malloc 分配内存失败时我应该抛出哪种异常类型

所以,想象一下我有这个代码:

typedef struct Point {
    float x;
    float y;
} Point;

class Foo {
    private:
        Point * p;
    public:
        Foo () {
            this->p = (Point *) malloc(sizeof(Point));
            if (this->p == NULL) {
                // throw exception_malloc_fail;
            }
        }
};
Run Code Online (Sandbox Code Playgroud)

一旦 malloc 在构造函数内分配内存失败,我应该抛出哪种异常?

在这种情况下,我不能简单地 returnfalseNULL。所以throw声明应该是要走的路。

但是,我找不到要抛出的正确类型的异常。我应该抛出一个默认异常吗?或者有没有适合这种情况的?

c++ malloc error-handling constructor throw

0
推荐指数
1
解决办法
59
查看次数

标签 统计

c++ ×1

constructor ×1

error-handling ×1

malloc ×1

throw ×1