服务器端攻城师

一、获取系统的错误信息比如移动文件时,获取文件操作错误:NSError *e = nil;[[NSFileManager defaultManager] moveItemAtPath:sourcePath toPath:targetPath error:&e];if (e) {  NSLog(@"move failed:%@", [e localizedDescription]);}先定一个空的错误信息NSError *e = nil;取地址&e如果有错误信息,打印错误的本地化描述if (e) {  NSLog(@"move failed:%@", [e localizedDescription]);}二、自定义错误信息通常可以通过下面语句,自定义个NSError对象#define CustomErrorDomain @"com.xiaodao.test"typedef enum {   XDefultFailed = -1000,   XRegisterFailed,   XConnectFailed,   XNotBindedFailed}CustomErrorFailed;NSDictionary *userInfo = [NSDictionary dictionaryWithObject:@"is a error test" forKey:NSLocalizedDescriptionKey];NSError *aError = [NSError errorWithDomain:CustomErrorDomain code:XDefultFailed userInfo:userInfo];其中,自定义错误域对象CustomErrorDomain,,通常用域名反写,也可以是任何其他字符串code错误标识, 系统的code一般都大于零,自定code可以用枚举(最好用负数, 但不是必须的)userInfo自定义错误信息,NSLocalizedDescriptionKey是NSError头文件中预定义的键,标识错误的本地化描述可以通过NSError的localizedDescription方法获得对应的值信息主调用函数一般传入NSError指针的指针,来获取错误信息,例如- (Bool)doSomething:(NSDictionary *)parameter1 error:(NSError **)aError{//TODO: do something  *aError = [NSError errorWithDomain:CustomErrorDomain code:XDefultFailed userInfo:userInfo];  return Yes;} 三、NSError头文件解析1.NSError对象中,主要有三个私有变量错误域(NSInteger): _domain错误标示(NSString *):_code错误详细信息(NSDictionary *):_userInfo通常用_domain和_code一起标识一个错误信息获取_domain- (NSString *)domain;

获取 _code

– (NSInteger)code;获取 _userInfo- (NSDictionary *)userInfo; 2.预定义域AppKit和Foundation库中主要的错误域NSString *const NSCocoaErrorDomain;其他域NSString *const NSPOSIXErrorDomain;NSString *const NSOSStatusErrorDomain;NSString *const NSMachErrorDomain;3.预定义的userinfo键名推荐的标准方式,通用键NSString *const NSUnderlyingErrorKey;其他键,对应各自读取信息的方法://详细描述键NSString *const NSLocalizedDescriptionKey;//取方法- (NSString *)localizedDescription;//失败原因键NSString *const NSLocalizedFailureReasonErrorKey//取方法- (NSString *)localizedFailureReason;//恢复建议键NSString *const NSLocalizedRecoverySuggestionErrorKey;//取方法- (NSString *)localizedRecoverySuggestion;//恢复选项键NSString *const NSLocalizedRecoveryOptionsErrorKey//取方法- (NSArray *)localizedRecoveryOptions;//其他键NSString *const NSRecoveryAttempterErrorKey; NSString *const NSHelpAnchorErrorKey;NSString *const NSStringEncodingErrorKey ;NSString *const NSURLErrorKey;NSString *const NSFilePathErrorKey;用法:NSDictionary *userInfo = [NSDictionary dictionaryWithObjectsAndKeys:@"这是错误详细的描述信息", NSLocalizedDescriptionKey, error, NSUnderlyingErrorKey, nil]];4.主要的初始化方法:- (id)initWithDomain:(NSString *)domain code:(NSInteger)code userInfo:(NSDictionary *)dict;+ (id)errorWithDomain:(NSString *)domain code:(NSInteger)code userInfo:(NSDictionary *)dict;

真正的停下来,享受自我的体验时刻,也许浮光掠影,

服务器端攻城师

相关文章:

你感兴趣的文章:

标签云: