CG@CPPBLOG

/*=========================================*/
随笔 - 76, 文章 - 39, 评论 - 137, 引用 - 0
数据加载中……

用OBJC编程 8 - Dealing with Errors

用OBJC编程 8 - Dealing with Errors

使用NSError,

委托方法会产生Error
-(void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error;
NSError包括错误码,错误业务领域domain和描述。为保证每个错误码唯一,使用了domain,NSURLConnection的domain是NSURLErrorDomain

通过引用参数传递Error
-(BOOL)WriteToURL:(NSURL *)aURL option:(NSDataWritingOptions)mask error:(NSError**) errorPtr;
//////////////////////////
NSError *anyError;
BOOL sucess = [receivedData writeToURL:someLocalFileURL option:0 error:&anyError];
if(!success){
    NSLog(@"Write failed with error: %@", anyError);
    
//present error to user
}
// 如果writeToURL发生错误,返回NO,并且更新anyError
// 如果你对error不感兴趣,可以传递NULL

产生你自己的error
NSString *domain = @"com.MyCompany.MyApplication.ErrorDomain";
NSString *desc = NSLocalizedString(@"Unable to,,,"@"");
NSDictionary *userInfo = @{NSLocalizedDescriptionKey : desc};

NSError *error = [NSError errorWithDomain:domain code:-101 userInfo:userInfo];
//////////////////////
- (BOOL) doSomethingThatMayGenerateAnError:(NSError **)errorPtr;

//////////////////
-(BOOL)doSomethingThatMayGenerateAnError:(NSError **)errorPtr{
  
//,,,
  
// error occurred
  if(errorPtr){
    
*errorPtr = [NSError errorWithDomain:,,,  code:,,, userInfo:,,,];
  }
  
return NO;
}

使用异常
OBJC像其他语言一样支持异常,NSException和NSError一样是一个对象
@try{
   
// 可能导致异常
}
@catch (NSException *exception){
   
// 处理异常
}
@finally{
   
// 清理,处理无异常情况
}





posted on 2013-11-23 11:14 cuigang 阅读(340) 评论(0)  编辑 收藏 引用 所属分类: OBJC


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理