相关疑难解决方法(0)

函数try catch语法和main

一个鲜为人知但几乎从未使用过的C++特性的声明是:

void foo();
Run Code Online (Sandbox Code Playgroud)

一种可能的法律定义可能是:

void foo() try {
  throw 42;
}
catch(...) {
}
Run Code Online (Sandbox Code Playgroud)

这里包含的整个函数实现在try/ catchpair中,这似乎与允许相似.

那是合法的int main()吗?例如:

int main() try {
  throw 42;
}
catch(...) {
}
Run Code Online (Sandbox Code Playgroud)

main,n3290§3.6.1 的规则主要讨论它应该采取什么样的论据以及它返回什么 - 它们似乎并没有明确地禁止它,因为它们与你可能想要尝试的各种其他奇怪事物(例如联系)一样.

这是合法的,定义明确吗?

c++ program-entry-point exception-handling language-lawyer

16
推荐指数
1
解决办法
3495
查看次数

你真的有一个没有身体但只是一个try/catch块的函数/方法吗?

请注意,此函数没有"{"和"}"正文.只是一个try/catch块:

void func( void )
try
{
    ...
}
catch(...)
{
    ...
}
Run Code Online (Sandbox Code Playgroud)

这是故意的C++的一部分,还是这是一个g ++扩展?

除了绕过1级{}之外,还有什么目的吗?

在遇到http://stupefydeveloper.blogspot.com/2008/10/c-function-try-catch-block.html之前,我从未听说过这个.

c++ g++ try-catch

13
推荐指数
3
解决办法
613
查看次数