And*_*dry 4 c++ exception-handling exception declaration
考虑拥有一个类和一个全局函数:
例如,这是 usefulfuncts.hpp
void dosome(int a, int b) throw (std::exception);
Run Code Online (Sandbox Code Playgroud)
这是 usefulfuncts.cpp
void dosome(int a, int b) throw (std::exception) {
//...
}
Run Code Online (Sandbox Code Playgroud)
这是aclass.hpp
class aclass {
// Members...
friend void dosome(int a, int b) throw (std::exception);
// Members...
};
Run Code Online (Sandbox Code Playgroud)
好!我想了解是否必须每次都写这个throw条款.那么我可以这样做吗?
这是 usefulfuncts.hpp
void dosome(int a, int b) throw (std::exception);
Run Code Online (Sandbox Code Playgroud)
这是 usefulfuncts.cpp
void dosome(int a, int b) { /* OMITTING IT! */
//...
}
Run Code Online (Sandbox Code Playgroud)
这是aclass.hpp
class aclass {
// Members...
friend void dosome(int a, int b); /* OMITTING IT */
// Members...
};
Run Code Online (Sandbox Code Playgroud)
这是正确的吗?只把它放在主要声明中?谢谢
Alo*_*ave 12
省略异常规范意味着您的函数可以抛出任何异常.
例外规格很糟糕.几乎没有任何编译器正确实现该功能.自C++ 11标准以来,它们已被弃用.实际上,Exception规范被认为是一个失败的实验,即使它们是C++ 03标准的一部分.
好读:
对例外规范的务实看法