[Objective-C]异常处理

Objective-C 异常处理
本文介绍了Objective-C中异常的捕获与抛出方法,并提供了详细的示例代码。包括使用@try、@catch、@finally进行异常捕获,以及通过@throw和raise:format:方法来抛出异常。

一、异常的捕获

和java类似,使用:

@try{

}

@catch{

}

@finally{

}

示例代码

@try {
    NSArray *array = [NSMutableArray array];
            
    // 从空数组里面取值(有异常)
    [array objectAtIndex:0];
}
@catch (NSException *exception) {
     NSLog(@"异常:%@", exception.name);
     NSLog(@"原因:%@", exception.reason);
}
@finally {
     NSLog(@"finally");
}


二、异常抛出

1)使用@throw

在有异常的地方直接使用@throw 可以将异常抛到上一层。 也可以使用“ @throw + 异常 ” 抛出指定的异常

示例代码:

/** 通过@throw抛出异常*/
@try {
     // 抛出一个字符串异常
     @throw @"string exception";
}
@catch (NSString *exception) {
     // 捕捉字符串异常
     NSLog(@"%@", exception);
}@catch (id exception) {
     // 捕捉其他异常
     NSLog(@"%@", exception);
            
     // 将异常抛到上一层
     @throw;
}

2)使用raise:format:

调用方法:

+ (void)raise:(NSString *)name format:(NSString *)format, ...

name:异常名称  format:异常原因

示例代码:

/** raise方式抛出异常 */
@try {
    [NSException raise:@"TestException" format:@"测试"];
}
@catch (NSException *exception) {
     NSLog(@"异常:%@", exception.name);
     NSLog(@"原因:%@", exception.reason);
}


参考文章:http://www.objectivec-iphone.com/introduction/exception/throw-raise.html

转载于:https://my.oschina.net/lavzchen/blog/416766

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值