您的位置:首页 > 移动开发 > IOS开发

iOS异常处理机制

2015-10-07 12:51 477 查看
一.错误处理NSError

在cocoa环境下,为了能够统一表示错误的种类和消息,可以使用类NSError,类NSError在Foundation/NSError.h中声明,NSError实例有时又成为错误对象。

先看一个自定义的NSError,截图.在日常开发中遇到最多的还是系统的error,通过详细的domain,code,userinfo可以很清楚的了解这个错误的信息。 至于自定义NSError的主要作用也在截图的.m简介讲到,针对特定错误情况生成error,再调用地方会判断是否生成error来做相应的处理。







下面事堆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;


二.异常处理NSException
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: