[Objective-C]异常处理

一、异常的捕获

和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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值