ios NSException 异常处理
来源:互联网 发布:mac玩国服lol 编辑:程序博客网 时间:2024/05/17 04:24
1.NSException,捕获异常的原则是先细后广。
NSException* ex = [[NSException alloc] initWithName:@"ExceptionName" // just for test 2 reason:@"XXX" 3 userInfo:nil]; 4 5 CustomNSException* ex = [[CustomNSException alloc] initWithName:@"CustomNSExceptionName" // just for test 6 reason:@"XXX" 7 userInfo:nil]; 8 9 @try {10 bool error = YES;11 if (error) {12 @throw ex;13 }14 }15 16 @catch ( CustomNSException *exception ) {17 NSLog(@"CustomNSException.name = %@" , CustomNSException.name);18 NSLog(@"CustomNSException.reason = %@" , CustomNSException.reason);19 20 // 弹出警告框,提示异常信息21 UIAlertView* alert = [[UIAlertView alloc] initWithTitle:CustomNSException.name22 message:CustomNSException.reason23 delegate:nil24 cancelButtonTitle:nil25 otherButtonTitles:nil];26 27 [alert show];28 [alert release];29 }30 31 @catch ( NSException *exception ) {32 NSLog(@"exception.name = %@" , exception.name);33 NSLog(@"exception.reason = %@" , exception.reason);34 }35 36 @finally {37 NSLog(@"@finally");38 }
@try
{
}
@catch
{
}
@finally
{
}
-》常用于下载数据(图片)本地配置显示。如果数据没有成功下载,则本地调用时可能出现异常。
@try { _webImageOperation = [[SDWebImageManager sharedManager] downloadWithURL:[NSURL URLWithString:[self getSmallImageURL:imageURL]] options:0 progress:^(NSInteger receivedSize, NSInteger expectedSize){ } completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, BOOL finished) { }];} @catch (NSException *e) {}
-》dealloc中也很常见
- (void)dealloc { @try { [[NSNotificationCenter defaultCenter] removeObserver:self]; } @catch (NSException *exception) { // do nothing, only unregistering self from notifications }}
-》sqlite中插入数据
* @param transactionSql 多条sql语句数组 */-(void)execInsertTransactionSql:(NSArray *)transactionSql{ NSString *path = [self getPath]; if (sqlite3_open([path UTF8String], &database) == SQLITE_OK) { //使用事务,提交插入sql语句 @try{ char *errorMsg; if (sqlite3_exec(database, "BEGIN", NULL, NULL, &errorMsg)==SQLITE_OK) { DebugLog(@"启动事务成功"); sqlite3_free(errorMsg); sqlite3_stmt *statement; for (int i = 0; i<transactionSql.count; i++) { if (sqlite3_prepare_v2(database,[[transactionSql objectAtIndex:i] UTF8String], -1, &statement,NULL)==SQLITE_OK) { if (sqlite3_step(statement)!=SQLITE_DONE) sqlite3_finalize(statement); } } if (sqlite3_exec(database, "COMMIT", NULL, NULL, &errorMsg)==SQLITE_OK) DebugLog(@"提交事务成功"); sqlite3_free(errorMsg); } else sqlite3_free(errorMsg); } @catch(NSException *e) { char *errorMsg; if (sqlite3_exec(database, "ROLLBACK", NULL, NULL, &errorMsg)==SQLITE_OK) DebugLog(@"回滚事务成功"); sqlite3_free(errorMsg); } @finally{} }}
0 0
- ios NSException 异常处理
- NSException异常处理
- Objective-C - 异常处理(NSException)
- iOS NSException 配套使用方案
- NSException
- IOS 收集崩溃信息 NSException类
- IOS异常处理
- IOS异常处理
- IOS异常处理(转)
- iOS崩溃异常处理
- IOS异常处理(转)
- ios开发--异常处理
- iOS异常处理
- IOS异常处理
- iOS 异常处理
- iOS异常处理
- iOS异常处理机制
- iOS异常处理
- 菜鸟求教到底错哪了
- Oracle Metalink Notes Collection
- ubuntu配置jdk
- Android工具——adb命令
- 精选30道Java笔试题解答
- ios NSException 异常处理
- SSLError: [Errno 8] _ssl.c:504: EOF occurred in violation of protocol
- 事务隔离级别
- 2014-7-23 栈训练总结
- 战斗机的分代标准
- 职员有薪水了
- Python 二进制/十进制等转换
- POJ 1755 Triathlon(n^2 半平面交, 两点式和参数式直线求交点)
- java8中的Date、DateTime、Instant