MST

星途 面试题库

面试题:Objective-C 异常处理机制的基本使用

请描述在Objective-C中如何使用@try、@catch和@finally块进行异常处理,并举例说明。同时,解释一下@throw抛出异常的语法和作用。
47.5万 热度难度
编程语言Objective-C

知识考点

AI 面试

面试题答案

一键面试

在Objective-C中,异常处理通过@try@catch@finally块实现:

  1. @try:包含可能抛出异常的代码。
  2. @catch:捕获并处理@try块中抛出的异常。
  3. @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块。
  • 可以在代码遇到无法继续正常执行的错误情况时,通过抛出异常来通知调用者处理问题。