最后的代码是在Objective-C中返回后运行的吗?

Kev*_*lar 15 exception objective-c try-catch-finally

请考虑以下代码:

@try {
  if (something.notvalid)
  {
    return;
  }
  // do something else
} @catch (NSException *ex) {
  // handle exception
} @finally {
  NSLog(@"finally!");
}
Run Code Online (Sandbox Code Playgroud)

如果something无效并且我从try中返回,代码是否@finally执行?我相信它应该,但我已经说过的其他人不这么认为,我现在无法测试这一点.

pro*_*rmr 15

@finally代码总是根据这里这里执行.

@finally块包含无论是否抛出异常都必须执行的代码.