//把可能出现异常的代码放在try中
BOOL isError=NO;
@try {
for(int i=0;i<count;i++){
NSString *sql=@"insert into student(id,name)values(?,?)";
NSString *uid=[NSString stringWithFormat:@"%d",i];
NSString *name=[NSString stringWithFormat:@"name%d",i];
BOOL ret=[_db executeUpdate:sql,uid,name];
if(!ret){
NSLog(@"insert error:%@",_db.lastErrorMessage);
}
}
}
//如果出现异常,流程会转到此代码块进行处理,exception就是异常对象
@catch (NSException *exception) {
isError=YES;
//事务回滚
[_db rollback];
NSLog(@"error:%@",exception.reason);
}
//无论是否出现异常,代码都会执行此代码块中的内容
@finally {
if(!isError){
//提交事务(事务一旦提交就不能再回滚了)
[_db commit];
}
}