Rod*_*igo 16 oop error-handling objective-c try-catch
这是一个简单的Objective-C问题.
当您使用@try工作流程时,可以以2种方式运行
@catch阻止而不是@finally@try块然后运行@finally那么,使用或不使用@finally块有什么区别?如果我只使用:
-(void)function{
@try {
...
}
@catch (NSException *exception) {
...
}
>>>The workflow will run this line in any case?
}
Run Code Online (Sandbox Code Playgroud)
将运行该函数的其余部分,或者仅在@catch创建NSException时阻止该块?
aho*_*fer 15
"@finally块包含无论是否抛出异常都必须执行的代码." 最后的代码是在Objective-C中返回后运行的吗?
finally块用于释放/清理开放套接字,打开文件,数据库锁,信号量锁等资源.
如果catch块内部发生错误或catch块重新抛出异常,那么行:
>>>The workflow will run this line in any case?
Run Code Online (Sandbox Code Playgroud)
没有执行.但是,应该执行finally块中的代码.finally块是从即将崩溃的应用程序中彻底退出的最后一个最佳机会.即使应用程序不会崩溃,它仍然是清理资源的最佳位置,因为finally块中的代码更有可能在意外条件下执行,而不是finally块之外的代码.
| 归档时间: |
|
| 查看次数: |
10447 次 |
| 最近记录: |