面试题答案
一键面试在Objective-C中,异常处理通过@try
、@catch
和@finally
块实现:
@try
块:包含可能抛出异常的代码。@catch
块:捕获并处理@try
块中抛出的异常。@finally
块:无论@try
块中是否抛出异常,都会执行该块中的代码。
示例代码如下:
@try {
// 可能抛出异常的代码
NSString *str = nil;
NSLog(@"%@", [str uppercaseString]);
} @catch (NSException *exception) {
// 捕获并处理异常
NSLog(@"捕获到异常: %@", exception.reason);
} @finally {
// 无论是否抛出异常,都会执行的代码
NSLog(@"finally块执行");
}
@throw
用于抛出异常,语法如下:
@throw [NSException exceptionWithName:NSInternalInconsistencyException
reason:@"自定义异常原因"
userInfo:nil];
作用:
- 中断当前执行路径,将控制权转移到最近的
@catch
块。 - 可以在代码遇到无法继续正常执行的错误情况时,通过抛出异常来通知调用者处理问题。