gpt4 book ai didi

C++ 我需要为一个函数到处写 throw 子句吗?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:59:41 25 4
gpt4 key购买 nike

之前

考虑有一个类和一个全局函数:

例如,usefulfuncts.hpp

void dosome(int a, int b) throw (std::exception);

这是usefulfuncts.cpp

void dosome(int a, int b) throw (std::exception) {
//...
}

这是aclass.hpp

class aclass {
// Members...
friend void dosome(int a, int b) throw (std::exception);
// Members...
};

之后(我想要的)

好的!我想了解是否有必要每次都编写 throw 子句。例如,我可以这样做吗?

这是usefulfuncts.hpp

void dosome(int a, int b) throw (std::exception);

这是usefulfuncts.cpp

void dosome(int a, int b) { /* OMITTING IT! */
//...
}

这是aclass.hpp

class aclass {
// Members...
friend void dosome(int a, int b); /* OMITTING IT */
// Members...
};

这样对吗?只把它放在主要声明中?谢谢

最佳答案

省略异常说明意味着您的函数可以抛出任何 异常。

异常规范很糟糕。几乎没有任何编译器可以正确实现该功能。自 C++11 标准以来,它们已被弃用。事实上,异常规范被认为是一个失败的实验,即使它们是 C++03 标准的一部分。

好读:
A Pragmatic Look at Exception Specifications

关于C++ 我需要为一个函数到处写 throw 子句吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11258709/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com