问题标签 [function-try-block]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - d'tor 的 function-try-block 是否应该允许处理抛出的成员变量 d'tor?
我有一个类的析构函数是noexcept(false)
. 我知道它只在某些情况下抛出,我想将它用作带有noexcept
析构函数的类的成员变量。从https://en.cppreference.com/w/cpp/language/function-try-block我读到“从函数体中的任何语句或(对于构造函数)从任何成员或基本构造函数引发的每个异常,或(对于析构函数)来自任何成员或基本析构函数,将控制权转移到处理程序序列,就像在常规 try 块中抛出的异常一样。” 这让我认为这应该是正确的:
https://godbolt.org/z/ez17fx (MSVC)
我对noexcept
功能尝试块的理解~NonThrowingDtor()
是noexcept
保证它不会抛出(并且它通过基本上做try { ... } catch (...) { std::terminate(); }
https://en.cppreference.com/w/cpp/language/noexcept_spec来做到这一点。但是功能- try-block with catch (...)
and no additional throw 应该保证它永远不会抛出. Clang 对此没问题,但正如 godbolt 链接所示,MSVC 说
java - 停止 try 块自动迭代到下一个循环(for loop java)
问候查看此问题的堆栈溢出者,我是一名业余爱好者,正在使用 Java 开发划船游戏,目前面临一个问题,即使输入无效,for 循环中的 try 块也会立即迭代到下一个循环。for 循环由一个用于启动掷骰子的输入组成,掷骰子函数位于一个单独的类中,当输入不是“Y”时它将引发异常。当 try 块不在 for 循环中时,它可以完美地工作,但是当它放在 for 循环中时,即使输入无效,它也会自动迭代循环。