background image

23

NSDictionary *userInfo = [NSDictionary dictionaryWithObject:@

"is a error test" 

forKey:NSLocalizedDescriptionKey];  

24

NSError *aError = [NSError errorWithDomain:CustomErrorDomain code:XDefultFailed 

userInfo:userInfo];  

其中,自定义错误域对象

CustomErrorDomain,通常用域名反写,也可以是任何其他字符

code 错误标识, 系统的 code 一般都大于零,自定 code 可以用枚举(最好用负数, 但不是必
须的)

userInfo 自定义错误信息,NSLocalizedDescriptionKey 是 NSError 头文件中预定义的键,标
识错误的本地化描述

可以通过

NSError 的 localizedDescription 方法获得对应的值信息

主调用函数一般传入

NSError 指针的指针,来获取错误信息,例如

25

- (Bool)doSomething:(NSDictionary *)parameter1 error:(NSError **)aError  

26

{  

27

//TODO: do something

  

28

  

*aError = [NSError errorWithDomain:CustomErrorDomain code:XDefultFailed 

userInfo:userInfo];  

29

  

return

 Yes;  

30

}  

三、

NSError 头文件解析

1.NSError 对象中,主要有三个私有变量

错误域(

NSInteger): _domain

错误标示(

NSString *):_code

错误详细信息(

NSDictionary *):_userInfo

通常用

_domain 和_code 一起标识一个错误信息