Objective c 标准化错误代码-目标-C
我正在尝试向我的一个项目添加错误代码,如下所示:Objective c 标准化错误代码-目标-C,objective-c,error-handling,nserror,Objective C,Error Handling,Nserror,我正在尝试向我的一个项目添加错误代码,如下所示: typedef enum { FSChatErrorChatManagerInUse = 101, FSChatErrorFailedToRetrieveHeader = 202, FSChatErrorFailedToGetCount = 303, } FSChatErrorCode; 然后,发送: NSError * err = [NSError errorWithDomain:@"Failed To Get Cou
typedef enum {
FSChatErrorChatManagerInUse = 101,
FSChatErrorFailedToRetrieveHeader = 202,
FSChatErrorFailedToGetCount = 303,
} FSChatErrorCode;
然后,发送:
NSError * err = [NSError errorWithDomain:@"Failed To Get Count"
code:FSChatErrorFailedToGetCount
userInfo:nil];
因此,当收到错误通知时,您可以看到错误的类型:
if (err.code == FSChatErrorFailedToGetCount) {
// do stuff
}
问题:
是否有一些我应该遵循的标准错误代码语法或编号?我很难找到参考资料。这篇文章对这个问题进行了很好的讨论:
与退出状态代码一样,NSError代码表示退出的性质
问题这些状态代码在特定错误中定义
域,以避免重叠和混淆。这些状态代码
通常由枚举中的常量定义
例如,在NSCOCAerorDomain中,错误的状态代码
NSFileManager试图访问不存在的文件导致的错误为4,
如NSFileNoSuchFileError所定义。但是,NSPOSIXERROR域中有4个
指POSIX EINTR或“中断功能”错误
因此,由于您使用的是自己的错误域,因此可以创建任何您想要的错误代码。顺便说一句,在您的示例中,您似乎误用了域值:它并不意味着包含错误消息。请使用
userInfo[NSLocalizedDescriptionKey]
。我记不起任何一般性质的内容。@HotLicks-所以对于类似的内容,它们是什么数字并不重要?我知道http错误代码有一些标准,比如404找不到。如果你计划有更多的错误代码,通常最好分组分配它们——100-199、200-299、300-399,例如,基于一般类别。但是http代码是状态代码
s,所以2xx代码表示成功,3xx代码表示重定向。。。域中应该包括什么?“错误域这可以是预定义的N错误域之一,也可以是描述自定义域的任意字符串。”有关预定义域的列表,请参阅。它只是一个字符串(最好定义为常量)来限制错误代码的范围。