一.错误处理NSError
在cocoa环境下,为了能够统一表示错误的种类和消息,可以使用类NSError,类NSError在Foundation/NSError.h中声明,NSError实例有时又成为错误对象。
先看一个自定义的NSError,截图.在日常开发中遇到最多的还是系统的error,通过详细的domain,code,userinfo可以很清楚的了解这个错误的信息。 至于自定义NSError的主要作用也在截图的.m简介讲到,针对特定错误情况生成error,再调用地方会判断是否生成error来做相应的处理。
下面事堆NSError头文件解析,转载别人博文
1.NSError对象中,主要有三个私有变量
错误域(NSInteger): _domain
*):_code
*):_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