首页 > 其他分享 >iOS异常处理机制

iOS异常处理机制

时间:2023-02-05 21:05:38浏览次数:31  
标签:domain code const iOS NSString userInfo NSError 机制 异常


一.错误处理NSError

在cocoa环境下,为了能够统一表示错误的种类和消息,可以使用类NSError,类NSError在Foundation/NSError.h中声明,NSError实例有时又成为错误对象。

先看一个自定义的NSError,截图.在日常开发中遇到最多的还是系统的error,通过详细的domain,code,userinfo可以很清楚的了解这个错误的信息。 至于自定义NSError的主要作用也在截图的.m简介讲到,针对特定错误情况生成error,再调用地方会判断是否生成error来做相应的处理。

iOS异常处理机制_异常处理机制

iOS异常处理机制_NSError_02

iOS异常处理机制_NSAssert_03

下面事堆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


标签:domain,code,const,iOS,NSString,userInfo,NSError,机制,异常
From: https://blog.51cto.com/u_15952281/6038416

相关文章

  • Java异常
    Java异常异常指程序运行中出现的不期而至的各种状况。Java把异常当做对象来处理,并定义了一个基类java.lang.Throwable作为所有异常的超类。通常分为Error和Exception两......
  • 揭秘运营商数据中心的物理层高可用机制(二)机柜级别高可用
    之前一篇文章说了以下设备的高可用机制,包括交换机、服务器、防火墙等设备和连线的高可用,这篇文章主要是聊一聊如何规划机柜级别的高可用。一、列头柜列头柜即电源配电柜,一般......
  • AXI VALID READY 握手机制
    1.VAILD和READY传输方向2.VAILD和READY依赖关系前面说到AXI的五个通道是独立的,但通道间必须保持一定的约定关系:写回复必须在一次写事务的最后一个写数据之后读数据......
  • 异常机制(Exception)
    异常机制(Exception)什么是异常实际工作中,遇到的情况不肯恩格式非常完美的。比如:你写的某个模块,用户输入不一定符合你的要求、你的程序要打开某个文件,这个文件可能不存在......
  • 熟练使用有棱有角的内存——4.1内存的物理机制很简单
    1.有十个地址信号引脚的内存IC(集成电路)可以指定的地址范围是多少?答:用二进制数来表示的话是0000000000~1111111111(用十进制数来表示的话是0~1023)2.高级编程语言中的数......
  • java如何全局捕获异常
    提问: java在进行全局捕获异常时,总是不起作用,无法正常捕获异常,这个如此处理?具体代码如下全局捕获异常的类ExceptionHandlerAdvicepackagecom.xjc.common.handler;im......
  • 1.5 函数的调用机制
    函数调用处理是通过把程序计数器的值设定成函数的储存地址来实现的,哪怕是高级语言编写的程序。哪怕是高级语言编写的程序,函数”调用处理也是通过把程序计数器的值设定成函......
  • 移动端跨平台开发框架概览(IOS / 安卓)
    前言在移动端开发项目中。开发资源不够时,同时由两个团队维护安卓和IOS两套原生APP是成本很高的。此时,就需要选择一个同时支持多平台的客户端开发框架,能够使用一套代码,编译......
  • 对 Flask 运行机制的理解
    (一)概述Flask是Python中有名的同步的轻量级web框架,主要提供最基本的api接口功能,表现形式主要是服务端被动接收客户端的请求后做出响应,然后客户端根据响应结果做出......
  • vuex,state,mutations,actios,getters,mdoules
    vuex是做什么的vue组件之间进行数据传递还是比较麻烦的,所以我们使用一个vuex仓库,统一管理数据和状态通俗来说vuex就是专门为vue应用程序开发的状态管理模式,采用了集中式......