面试题答案
一键面试异常处理常见方式
- @try - @catch - @finally:这是Objective-C中处理异常的标准语法结构。通过在@try块中放置可能抛出异常的代码,@catch块捕获并处理异常,@finally块用于执行无论是否发生异常都需要执行的代码。
- NSError:在许多情况下,方法通过NSError指针来返回错误信息,调用者可以检查NSError对象来判断是否发生错误并获取错误详情。这种方式更适用于可恢复的错误场景,而不是像异常那样用于不可恢复的错误情况。
@try、@catch、@finally语句块作用及适用场景
- @try块
- 作用:包含可能抛出异常的代码。当该块内的代码抛出异常时,程序流程立即跳转到相应的@catch块。
- 适用场景:适用于包含那些可能由于逻辑错误、资源不足或其他不可预见情况而抛出异常的代码段,例如文件读取操作、网络请求等可能失败的操作。
- @catch块
- 作用:捕获@try块中抛出的异常,并对异常进行处理。可以获取异常对象(通常为NSException类型),通过该对象获取异常相关信息如异常原因、异常名称等。
- 适用场景:用于处理特定类型或所有类型的异常。例如,在文件读取失败抛出异常时,可以在@catch块中进行提示用户重新操作或进行一些替代处理。
- @finally块
- 作用:无论@try块中是否抛出异常,@finally块中的代码都会被执行。主要用于释放资源(如关闭文件、释放锁等)。
- 适用场景:适用于需要确保某些操作(如清理资源、关闭连接等)一定会执行的场景,而不管@try块中的代码是否成功执行或抛出异常。