因此,我在此链接中阅读了有关功能 try 块的信息。并且有一行描述了普通 try 块和函数 try 块之间的区别,如下所示
与允许您解决异常、抛出新异常或重新抛出现有异常的普通 catch 块不同,对于函数级 try 块,您必须抛出或重新抛出异常
但是后来我尝试编写一个这样的函数try块
#include <iostream>
int add(int a, int b) try {
throw 1;
return a + b;
}
catch (int) {
std::cout << "catch in add()";
}
int main()
{
try {
add(1, 2);
}
catch (int) {
std::cout << "catch in main()";
}
}
输出是
catch in add()
如果函数 try 块不允许我们解决异常,那么为什么catch in main()
没有打印出来