我最近遇到了这个语法的try-catch函数。 struct A { int a; A (int i) : a(i) // normal syntax { try {} catch(…) {} } A () // something different try : a(0) {} catch(…) {} void foo () // normal function try {} catch(…) {} }; 两种语法都是有效的 。 除了编码风格之外,这些语法还有什么技术上的区别吗? 从任何方面来看,其中一种语法是否优于其他语法?