iOS- Exception异常处理
1.Exception 前言
在iOS里对异常的处理及捕获,并没有其它语言里那么常见,相信很多iOS程序员都知道,更多的时候是对内存的的检测与分析,检测相关内存方面的问题。
而在app闪退并不是因为内存的时候,这时候我们完全可以将常见的一些异常捕获。
捕获后发送至服务器,并且友好提示用户错误,或则直接回滚到用户操作前,阻止应用程序的崩溃。
2.Exception处理
2.1.当知道具体位置偶尔发生错误,又无法解决时
这时可以利用xcode自带的try 来处理,避免程序崩退。

2.2.不知道具体位置,监听常用错误,发送到服务器
这里我们需要利用到两个框架。 两个第三方框架的,使用按具体的情况来应对
都可以在github上搜到
1.UncaughtExceptionHandler
可以检测出常见错误,并友好的提示用户 例如
1.NSArray、NSDictionary、NSString、KVC等问题引起的闪退。
2.解决NSObject performSelector找不到selector引起的闪退。
使用方法:
1、首先需要在appDelegate中使用InstallUncaughtExceptionHandler()用于监听
2、添加UncaughtExceptionHandler这个类 iOS SDK提供的函数是NSSetUncaughtExceptionHandler来进行异常处理。但是无法处理内存访问错误、重复释放等错误,因为这些错误发送的SIGNAL。所以需要处理这些SIGNAL 效果在Demo里可以来检测。
2.DurexKit安全工具包
可以阻止程序崩溃,并且可以自己写段逻辑在后台拦截到异常信息,发送至服务器,让程序从容运行。
缺点:用户没用提示,操作回滚。
使用方法:导入即可
#import "DurexKit.h"
使用Category,参数经过判断后才能执行方法,再将原生抛异常的方法替换,所以不需要修改任何已有的代码,仅import工具包的头文件,即可解决部分异常问题。
1、NSArray、NSDictionary、NSString、KVC等问题引起的闪退。
2、解决NSObject performSelector找不到selector引起的闪退。
1.1.将文件夹 "DurexKit" 添加到项目中;
1.2.#import "DurexKit.h"
1.3.无需修改项目中的任何代码。
作者: 清澈Saup
出处:http://www.cnblogs.com/qingche/
本文版权归作者和博客园共有,欢迎转载,但必须保留此段声明,且在文章页面明显位置给出原文连接。
iOS- Exception异常处理的更多相关文章
- iOS Exception Code 之 Magic Number
https://en.wikipedia.org/wiki/Hexspeak iOS Exception Code 之 Magic Number 备忘.
- springMVC全局Exception异常处理SimpleMappingExceptionResolver
继承了SimpleMappingExceptionResolver 贴上代码 /** * 对controller异常进行全局处理 * 区分了对普通请求和ajax请求的异常处理,普通请求返回到配置的er ...
- iOS - OC 异常处理
1.@try 语句 @try { // Code that can potentially throw an exception 可能会抛出异常的代码块 statement . . . } @catc ...
- iOS - Swift 异常处理
前言 在 Swift 1.0 时代是没有异常处理和抛出机制的,如果要处理异常,要么使用 if else 语句或 switch 语句判断处理,要么使用闭包形式的回调函数处理,再要么就使用 NSError ...
- java基础系列--Exception异常处理
原创作品,可以转载,但是请标注出处地址:http://www.cnblogs.com/V1haoge/p/7191280.html 1.概述 Java代码中的异常处理是非常重要的一环,从代码中可以看到 ...
- Exception异常处理机制
为什么要自定义自己的Exception ,Java Exception机制与传统的C语言的异常处理机制有什么不同,这种Exception机制的意义在什么地方?接下来咱就来和你一起探讨Exception ...
- IOS崩溃 异常处理(NSSetUncaughtExceptionHandler)
iOS已发布应用中对异常信息捕获和处理 代码下载地址:http://download.csdn.net/detail/daiyelang/6740205 iOS开发中我们会遇到程序抛出异常退出的情况, ...
- (转)IOS崩溃 异常处理(NSSetUncaughtExceptionHandler)
iOS已发布应用中对异常信息捕获和处理 代码下载地址:http://download.csdn.net/detail/daiyelang/6740205 iOS开发中我们会遇到程序抛出异常退出的情况, ...
- Java基础(七)--Exception异常处理
发现错误的理想时机是程序运行之前(编译期),然后不太现实,很多异常无法被发现(特别是业务上的数据),需要在运行时解决. 错误恢复机制保证代码健壮性的方式,异常处理在程序中很常见,也是必须的,必须考虑有 ...
- Exception,异常处理操作try{}catch(XXXException e){}finally{}
package seday07.exception;/** * @author xingsir * try-catch 异常处理机制 * 语法: * try{ * 代码片段 * }catch(XXXE ...
随机推荐
- hadoop jobhistory访问界面长时间打不开
1.浏览器无法直接通过url访问 可能原因 :主机名未配置,因此无法识别,在 c:\windows\system32\drivers\etc 目录添加主机名和对应ip hostname1[主机名 ] ...
- consonant_爆破音
consonant_爆破音_[p]和[b].[t]和[d].[k]和[g] 声带震动:发音的重要作用. 爆破音:发音在一瞬间,不会延长气流. [p]:声带不震动,嘴唇咬在一起,有明显的气流.map.p ...
- 从零开始一个http服务器(四)-动态返回
从零开始一个http服务器(四) 代码地址 : https://github.com/flamedancer/cserver git checkout step4 运行: make clean &am ...
- CodeChef BIBOARD: Binary Board 命题报告
这道题当时有了一点模糊的想法之后,构思了一整天-- 题意: 有一\(N \times M\)网格,每一格可以是白色或黑色.令\(B_i\)表示\(i \times i\)的纯黑子网格数量(子网格是指原 ...
- 北京Uber优步司机奖励政策(12月2日)
用户组:人民优步(适用于12月2日)奖励政策: 滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:htt ...
- 成都Uber优步司机奖励政策(2月29日)
滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...
- vim 打造IDE
1.MinBufExplorer 2.Ctags Ctags工具是用来遍历源代码文件生成tags文件,这些tags文件能被编辑器或其它工具用来快速查找定位源代码中的符号(tag/symbol),如变量 ...
- Selenium自动化测试第一天(上)
如有任何学习问题,可以添加作者微信:lockingfree 目录 Selenium自动化测试基础 Selenium自动化测试第一天(上) Selenium自动化测试第一天(下) Selenium自动化 ...
- Jquery获取DOM绑定事件
获取到当前正在执行的事件: $('#testDive').bind('click', function(event){alert('event: ' + event.type)}); 获取所有绑定事件 ...
- Microbit MicroPython 介绍
Python 是全世界最受欢迎的程序语言之一(world’s most popular ) .如果不特别说明,你可能每天在使用Python 写成的软件而不知道.像许多著名的公司跟组织如 Google, ...