nserror 自定义错误_NSError错误code对照表
一、NSError是系统错误信息类
//两种初始化方法:其中,domain 不能为空 dict可以为空
- (instancetype)initWithDomain:(NSErrorDomain)domain code:(NSInteger)code userInfo:(nullable NSDictionary *)dict;
+ (instancetype)errorWithDomain:(NSErrorDomain)domain code:(NSInteger)code userInfo:(nullable NSDictionary *)dict;
@property (readonly, copy) NSErrorDomain domain;//错误域
错误域主要有四个,对于Carbon框架的Error,归于OSStatus domain(NSOSStatusErrorDomain),对于POSIX error,归于NSPOSIXErrorDomain,而对于我们的iOS开发,一般使用NSCocoaErrorDomain。NSError.h定义了四个domain
{
// Predefined domain for errors from most AppKit and Foundation APIs.
FOUNDATION_EXPORT NSErrorDomain const NSCocoaErrorDomain;
// Other predefined domains; value of "code" will correspond to preexisting values in these domains.
FOUNDATION_EXPORT NSErrorDomain const NSPOSIXErrorDomain;
FOUNDATION_EXPORT NSErrorDomain const NSOSStatusErrorDomain;
FOUNDATION_EXPORT NSErrorDomain const NSMachErrorDomain;
}
@property (readonly) NSInteger code;//错误代码
@property (readonly, copy) NSDictionary *userInfo;//错误信息
@property (readonly, copy) NSString *localizedDescription;//获取本地化描述
@property (nullable, readonly, copy) NSString *localizedFailureReason;//获取失败原因
@property (nullable, readonly, copy) NSString *localizedRecoverySuggestion;//获取恢复建议
@property (nullable, readonly, copy) NSArray *localizedRecoveryOptions;本地恢复建议
@property (nullable, readonly, strong) id recoveryAttempter;
@property (nullable, readonly, copy) NSString *helpAnchor;
预定义的userinfo键名
NSString *const NSUnderlyingErrorKey;//推荐的标准方式,通用键
NSString *const NSLocalizedDescriptionKey; // 详细描述键
NSString *const NSLocalizedFailureReasonErrorKey; // 失败原因键
NSString *const NSLocalizedRecoverySuggestionErrorKey; //恢复建议键
NSString *const NSLocalizedRecoveryOptionsErrorKey; // 恢复选项键
//其他键
NSString *const NSRecoveryAttempterErrorKey;
NSString *const NSHelpAnchorErrorKey;
NSString *const NSStringEncodingErrorKey ;
NSString *const NSURLErrorKey;
NSString *const NSFilePathErrorKey;
用法示例:
NSDictionary *userInfo1 = [NSDictionary dictionaryWithObjectsAndKeys:@"由于文件不存在,无法打开", NSLocalizedDescriptionKey, @"失败原因:文件不存在", NSLocalizedFailureReasonErrorKey, @"恢复建议:请创建该文件",NSLocalizedRecoverySuggestionErrorKey,nil];
NSError *error = [[NSError alloc] initWithDomain:NSCocoaErrorDomain code:4 userInfo:userInfo1];//此处code是4,对照下面对照表4代表文件不存在。userinfo传userinfo1 查看自定义打印。userinfo传nil,查看本地化描述。
NSLog(@"========%@",[error localizedDescription]);
NSLog(@"========%@",[error localizedFailureReason]);
NSLog(@"========%@",[error localizedRecoverySuggestion]);
二、NSError错误code对照表
Foundation Constants Reference
NSError Codes
NSError codes in the Cocoa error domain.
enum {
NSFileNoSuchFileError = 4,
NSFileLockingError = 255,
NSFileReadUnknownError = 256,
NSFileReadNoPermissionError = 257,
NSFileReadInvalidFileNameError = 258,
NSFileReadCorruptFileError = 259,
NSFileReadNoSuchFileError = 260,
NSFileReadInapplicableStringEncodingError = 261,
NSFileReadUnsupportedSchemeError = 262,
NSFileReadTooLargeError = 263,
NSFileReadUnknownStringEncodingError = 264,
NSFileWriteUnknownError = 512,
NSFileWriteNoPermissionError = 513,
NSFileWriteInvalidFileNameError = 514,
NSFileWriteInapplicableStringEncodingError = 517,
NSFileWriteUnsupportedSchemeError = 518,
NSFileWriteOutOfSpaceError = 640,
NSFileWriteVolumeReadOnlyError = 642m
NSKeyValueValidationError = 1024,
NSFormattingError = 2048,
NSUserCancelledError = 3072,
NSFileErrorMinimum = 0,
NSFileErrorMaximum = 1023,
NSValidationErrorMinimum = 1024,
NSValidationErrorMaximum = 2047,
NSFormattingErrorMinimum = 2048,
NSFormattingErrorMaximum = 2559,
NSPropertyListReadCorruptError = 3840,
NSPropertyListReadUnknownVersionError = 3841,
NSPropertyListReadStreamError = 3842,
NSPropertyListWriteStreamError = 3851,
NSPropertyListErrorMinimum = 3840,
NSPropertyListErrorMaximum = 4095
NSExecutableErrorMinimum = 3584,
NSExecutableNotLoadableError = 3584,
NSExecutableArchitectureMismatchError = 3585,
NSExecutableRuntimeMismatchError = 3586,
NSExecutableLoadError = 3587,
NSExecutableLinkError = 3588,
NSExecutableErrorMaximum = 3839,
}
URL Loading System Error Codes
These values are returned as the error code property of an NSError object with the domain “NSURLErrorDomain”.
typedef enum
{
NSURLErrorUnknown = -1,
NSURLErrorCancelled = -999,
NSURLErrorBadURL = -1000,
NSURLErrorTimedOut = -1001,
NSURLErrorUnsupportedURL = -1002,
NSURLErrorCannotFindHost = -1003,
NSURLErrorCannotConnectToHost = -1004,
NSURLErrorDataLengthExceedsMaximum = -1103,
NSURLErrorNetworkConnectionLost = -1005,
NSURLErrorDNSLookupFailed = -1006,
NSURLErrorHTTPTooManyRedirects = -1007,
NSURLErrorResourceUnavailable = -1008,
NSURLErrorNotConnectedToInternet = -1009,
NSURLErrorRedirectToNonExistentLocation = -1010,
NSURLErrorBadServerResponse = -1011,
NSURLErrorUserCancelledAuthentication = -1012,
NSURLErrorUserAuthenticationRequired = -1013,
NSURLErrorZeroByteResource = -1014,
NSURLErrorCannotDecodeRawData = -1015,
NSURLErrorCannotDecodeContentData = -1016,
NSURLErrorCannotParseResponse = -1017,
NSURLErrorFileDoesNotExist = -1100,
NSURLErrorFileIsDirectory = -1101,
NSURLErrorNoPermissionsToReadFile = -1102,
NSURLErrorSecureConnectionFailed = -1200,
NSURLErrorServerCertificateHasBadDate = -1201,
NSURLErrorServerCertificateUntrusted = -1202,
NSURLErrorServerCertificateHasUnknownRoot = -1203,
NSURLErrorServerCertificateNotYetValid = -1204,
NSURLErrorClientCertificateRejected = -1205,
NSURLErrorClientCertificateRequired = -1206,
NSURLErrorCannotLoadFromNetwork = -2000,
NSURLErrorCannotCreateFile = -3000,
NSURLErrorCannotOpenFile = -3001,
NSURLErrorCannotCloseFile = -3002,
NSURLErrorCannotWriteToFile = -3003,
NSURLErrorCannotRemoveFile = -3004,
NSURLErrorCannotMoveFile = -3005,
NSURLErrorDownloadDecodingFailedMidStream = -3006,
NSURLErrorDownloadDecodingFailedToComplete = -3007
}
三、自定义NSError
系统的NSError是可以自己定制的,以下提供代码来实现并表示如何使用:
YXError.h 与 YXError.m
//
// YXError.h
// CustomYXError
//
// Copyright (c) 2014年 Y.X. All rights reserved.
//
#import
// 自行添加错误码
typedef enum : NSUInteger {
Crash = -10000,
DisConnect,
Unknow,
} YXErrorCode;
@interface YXError : NSObject
+ (NSError *)errorCode:(YXErrorCode)code userInfo:(NSDictionary *)dic;
+ (NSString *)transformCodeToStringInfo:(YXErrorCode)code;
@end
//
// YXError.m
// CustomYXError
//
// Copyright (c) 2014年 Y.X. All rights reserved.
//
#import "YXError.h"
static NSDictionary *errorDictionary = nil;
@implementation YXError
+ (void)initialize
{
if (self == [YXError class])
{
errorDictionary = \
@{
/* code : errorWithDomain */
/* ==================================== */
@(Crash) :@"Crash",
@(DisConnect) :@"DisConnect",
@(Unknow) :@"Unknow",
/* ==================================== */
};
}
}
+ (NSError *)errorCode:(YXErrorCode)code userInfo:(NSDictionary *)dic
{
return [NSError errorWithDomain:errorDictionary[@(code)]
code:code
userInfo:dic];
}
+ (NSString *)transformCodeToStringInfo:(YXErrorCode)code
{
return errorDictionary[@(code)];
}
@end
以下是使用的代码:
//
// AppDelegate.m
// NSError
//
// Copyright (c) 2014年 YouXianMing. All rights reserved.
//
#import "AppDelegate.h"
#import "YXError.h"
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// 定制一个NSError
NSError *error = [YXError errorCode:Crash
userInfo:nil];
NSLog(@"%@", error);
// 翻译一个NSError(将code值翻译成字符串)
NSLog(@"%@", [YXError transformCodeToStringInfo:-10000]);
return YES;
}
@end
nserror 自定义错误_NSError错误code对照表相关推荐
- nserror 自定义错误_NSError 错误 code 对照表
原博文地址:http://blog.csdn.net/yesjava/article/details/8056681 Foundation Constants Reference NSError Co ...
- nserror 自定义错误_iOS NSError错误code对照表
一.NSError是系统错误信息类 两种初始化方法:其中,domain 不能为空 dict可以为空 - (instancetype)initWithDomain:(NSErrorDomain)doma ...
- ThinkPHP6项目基操(13.实战部分 项目中的自定义异常处理总结 错误页面API错误)
项目中的自定义异常处理总结 错误页面&API错误 前言 一.异常分类 1. 控制器找不到 2. 方法找不到 3. 请求资源不存在 4. 系统內部异常.HTTP异常等 二.异常处理 1. 前置处 ...
- MySQL5添加外键约束错误 (Error Code : 1005)
MySQL5添加外键约束错误解决方法 当添加MySQL表之间外键约束关系的时候,常常会发生这样的错误: Error Code : 1005 Can't create table './test/#sq ...
- 自定义php报错信息,自定义PHP的错误报告处理方式
首先,我们要知道为什么要自定义PHP的错误报告方式. 答案就是影响美观.用户体验差. 我们知道,PHP哪条代码有问题,哪里就会报错,报错的样式如下图所示: 为了解决"影响美观.用户体验差&q ...
- WCF中使用自定义behavior提示错误的解决方法
WCF中使用自定义behavior提示错误的解决方法 参考文章: (1)WCF中使用自定义behavior提示错误的解决方法 (2)https://www.cnblogs.com/shenba/arc ...
- TP6 自定义404,错误提示页面
记录:自定义TP6404及错误提示页面. 1,配置config下的app.php配置文件 'exception_tmpl' => app()->isDebug()==true ? app( ...
- 如何自定义Tomcat 404错误页面
分享一下我老师大神的人工智能教程.零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow 点击这里使用RSS ...
- 错误代码:40029, 错误信息:code 无效,微信原始报文:{“errcode“:40029,“errmsg“:“invalid code, rid: 63a4082d-7a02e2ba-1fa5
错误代码:40029, 错误信息:code 无效,微信原始报文:{"errcode":40029,"errmsg":"invalid code, ri ...
最新文章
- Halliburton首席数据科学家兼技术研究员谈能源行业AI应用现状
- python百度网盘下载-python实现简单的百度云自动下载
- JavaSE(二)——循环语句
- 【PM】当大厂来临时,求生?求胜?
- CSMA/CD协议分析笔记
- 神经网络 demo(斯坦福)
- python函数手册 chm_Python中文文档
- 学习模式上的记录之统计篇四 关于excel里添加趋势线和回归统计的R square数值不一致的情况
- SecoClient 百度云安装包 亲测有效
- 云课堂智慧职教网页版登录入口_云课堂智慧职教网页版登录入口
- 字节跳动面试题后台_JAVA字节跳动面试题分享,一面
- win7如何设置wifi热点_教你win7如何设置网络共享文件夹
- 日文输入键盘罗马字对应表
- python 聊天机器人 中文_ 小智,又一个中文聊天机器人
- 调研报告与调查报告的区别及写作技巧
- mysql len函数的用法_SQL LEN() 函数
- 极客日报第 37 期:苹果官网出现价格 Bug;大众 CEO点评“苹果造车”;Spring Cloud 2020.0 正式发布
- 射频中IM3、IIP3、OIP3、G、P1dB指标计算
- SystemUi概述
- Python|简易银行ATM程序制作