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
获取 _code
获取 _userInfo
2.预定义域
AppKit和Foundation库中主要的错误域
其他域
3.预定义的userinfo键名
推荐的标准方式,通用键
其他键,对应各自读取信息的方法:
详细描述键
取方法
失败原因键
取方法
恢复建议键
取方法
恢复选项键
取方法
其他键
用法:
4.主要的初始化方法:
二.异常处理NSException
在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
相关文章推荐
- iOS封装的三个步骤
- IOS开发中的几种设计模式介绍(思想)
- ios NSString的一些知识
- IOS之Quartz
- iOS 获取屏幕分辨率大小错误的解决方法
- iOS: performXXX的几种方法总结:
- iOS中常见的项目文件
- iOS --- 关于block的常见使用方法
- 【IOS 开发学习总结-OC-35】★文件 I/O——NSPathUtilities.h管理路径+NSProcessInfo获取进程信息
- iOS-TextField
- iOS讲解迷惑之typedef枚举
- iOS9图片保存到相册
- iOS开发中一些小知识
- ios:NSKeyedArchiver/NSKeyedUnarchiver(归档/解档)
- iOS版本控制git小结--yoowei
- 解析iOS内存不足时的警告以及处理过程
- iOS中日期和字符串的相互转化
- iOS学习之查看图片某点的ARGB
- iOS雨笙 多线程的原理和实现
- iOS项目问题汇总<一>