我们在4和最后的C ++类中,我一直在查看Herb Sutter关于异常规范的帖子和stackoverflow上的一些帖子,表明在下一版C ++中将不推荐使用异常规范。
我可以找到如何实现异常规范的示例,但是我在理解异常规范以及它们与异常处理的区别方面存在一些问题。
提供一些见解的任何帮助都将是最有帮助的。
答案 0 :(得分:5)
异常规范要求编译器通过调用std::unexpected()
或使用std::set_unexpected()
的替换集来处理所有未列出的异常类型。
他们被普遍认为是一件坏事。
常见的误解:
另见std::bad_exception
。
答案 1 :(得分:3)
异常规范指定函数可能抛出的异常。
答案 2 :(得分:1)
正如名称所暗示的,异常规范是关于指定函数可能抛出的异常;一般来说。 可能的实施方式取决于语言。
std::unexpected
一般来说,异常规范几乎普遍受到谴责,因为:
std::bad_alloc
;因此,每个STL集合都很容易受到影响。如果可能的话,忘了你曾经学过异常规范。