只是个简短的问题。两者有什么区别吗
void f(Foo x) try { ... } catch(exception& e) { ... }
和
void f(Foo x) { try { ... } catch (exception& e) { ... } }
?
如果不是,为什么函数try块用于(将构造函数的初始化列表放在一边)?如果的复制构造函数 Foo 在以下情况下引发异常 x 传递给 f ?
Foo
x
f
Dr. Dobb's article
int f() try { ... } catch(Error &e) { // oops, can't return int from here! }