gpt4 book ai didi

c++ - 异常规范与异常处理

转载 作者:太空狗 更新时间:2023-10-29 23:45:34 26 4
gpt4 key购买 nike

我们在第 4 期也是最后一期 C++ 类(class)中,我一直在查看 Herb Sutter 关于异常规范的帖子和 stackoverflow 上的一些帖子,这些帖子表明异常规范将在 C++ 的下一个版本中被弃用。

我可以找到如何实现异常规范的示例,但我在理解异常规范是什么以及它们与异常处理有何不同方面遇到了一些问题。

提供一些见解的任何帮助都将非常有帮助。

最佳答案

异常规范要求编译器通过调用 std::unexpected() 或用 std::set_unexpected() 设置的替代来处理所有未列出的异常类型。

它们被普遍认为是坏事。

常见的误解:

  • “编译器会检查你是否做了任何可能抛出其他异常的事情。”错误的。在编译时不检查 C++ 异常。编译器不检查你是否抛出其他类型,也不检查你是否忘记处理未列出的异常类型。
  • “你不能抛出其他类型的异常。” False,在函数内可以抛出任何异常。在运行时,如果函数将通过任何未列出的异常类型异常终止,将调用意外处理程序,它有机会用列出的类型替换异常。

另见 std::bad_exception

关于c++ - 异常规范与异常处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17682801/

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