从带有禁用异常的已编译代码中调用const row = $(this).closest('tr');
const test_name = row.find('td[name="name1"]').text();
,我注意到gcc和msvc的行为有所不同。在第一种情况下,程序按照我的预期中止了,而在第二种情况下,什么也没发生(程序继续执行)。
事实证明,当未设置_HAS_EXCEPTIONS宏时,msvc为终止功能提供了虚拟实现:
std::terminate()
Visual Studio 2017版本15.7.2
cppreference说:
std :: terminate()也可以直接从程序中调用。
这是否意味着无论如何都必须调用中止/处理程序,而不取决于异常能力?