iOS之异常处理

每当出现bug或者crash的时候,我们总是习惯性的加入了NSLog或则单步调试。但是往往有些时候总找不到莫名奇妙的原因,回头看看C++对于异常处理的一些总结。

@try {
    <#Code that can potentially throw an exception#>
}
@catch (NSException *exception) {
    <#Handle an exception thrown in the @try block#>
}
@finally {
    <#Code that gets executed whether or not an exception is thrown#>
}

看着这个东西真的好熟悉,虽然说在iOS开发很少见到抛出异常这个东西,不自觉的便使用了。

自己写了一个例子,具体看例子吧。例子已上传git

下载地址

iOS之异常处理

时间: 2024-08-04 09:51:07

iOS之异常处理的相关文章

iOS手动异常处理

项目上线后,如果线上的app发生崩溃,领导让你处理这个问题,你会怎么处理?前面一篇文章中提到了如何获取crash文件及解析crash文件,你也可以在项目中集成第三方的crach框架,比如友盟.bugHD.Flurry.原理都是根据系统产生的crash日志进行了一次提取或封装,然后将封装后的crash文件上传到对应的服务端进行解析处理.下面是自己实现的应用内崩溃收集 - (BOOL)application:(UIApplication *)application didFinishLaunchin

iOS开发异常处理教程

以下是两篇xcode开发如何处理异常的教程,建议一读 part 1 part 2 梗概如下: 基本上你能碰到两种崩溃的情况:SIGABRT (也叫EXC_CRASH),和EXC_BAD_ACCESS (也可能叫SIGBUS或SIGSEGV). SIGABRT是程序异常,容易定位,EXC_BAD_ACCESS通常直接就把断点断在了main处,有一定的技巧来寻找原因(比如启用Zombie Objects). 文章介绍了如何读控制台的错误日志,介绍了异常断点(Exception Breakpoint)

iOS - 崩溃异常处理(1)

https://www.jianshu.com/p/4d32664dcfdb 一.关于崩溃 闪退估计是我们最不想看到的,对于用户而言,马上就能产生一种不悦,对于投资方而言,也会产生对技术实力的不信任感,所以,我们就需要对闪退进行处理,这里介绍一个不错的三方:AvoidCrash,写这个的大大也很牛逼,原文参照这里. 这个三方可以处理例如插入空值到字典中或数组中引起的崩溃.数组越界引起的崩溃.unrecognized selector sent to instance等等的崩溃,都能捕获并且避免闪

IOS开发之--异常处理--使用try 和 catch 来捕获错误。

一个搞java的老板问我会不会try catch  我说不会 学这么久也没听周围朋友用这个 因为苹果控制台本来就可以打印异常 特此研究一下. 1.try catch:  是捕获异常代码段   特点:对代码的实时监控  占用大量资源 2.ios中很少用到try 和catch 简单的来说,Apple虽然同时提供了错误处理(NSError)和异常处理(exception)两种机制,但是Apple更加提倡开发者使用NSError来处理程序运行中可恢复的错误.而异常被推荐用来处理不可恢复的错误. 原因有几

iOS 异常处理(-)

在开发过程中,经常要用到异常处理,防止 程序突然崩溃,在java,c++ 中有抛异常,和断言处理,那么在oc中 是怎么处理异常的呢? 1. NSAssert 看看ios 是怎么定义 #if !defined(_NSAssertBody) #define NSAssert(condition, desc, ...) do { __PRAGMA_PUSH_NO_EXTRA_ARG_WARNINGS if (!(condition)) { [[NSAssertionHandler currentHan

ios异常处理

Malformed or corrupted AST file: 'Unable to load module "/Users/topbar/Library/Developer/Xcode/DerivedData/ModuleCache/3TJWGBUKOEC41/Darwin.pcm": module file out of date' fatal error: malformed or corrupted AST file: 'Unable to load module "

IOS消息机制应用实例--异常处理

IOS消息机制应用实例--异常处理 最近发现了一个在项目中常用的异常处的工具NullSafe,分析了它的实现原理,不小心发现了一个小Bug,现将其分享出来,关于这篇文章的Demo已经上传至GitHub,看完如有收获,欢迎Star,如有疑问欢迎issue,大家一起学习.在IOS开发中我们可能会遇到下面的情景:服务器给我们返回得某个字段是null,比如someValue:null,这个时候我们利用第三方工具转化之后会得到someValue = <null>,这个时候如果我们判断这个someValu

iOS 异常处理,将bug信息发送到开发者邮箱

1.iOS 在程序的开发中我们难免会遇到崩溃的问题.然后在用户体验的时候,我们如何来防止崩溃的发生呢,并将我们的崩溃原因发送给开发者来处理它. 来看一个例子 NSString *str = @"523"; arr = @[@"sdad", @"dwada", @"ffwwra"]; [str substringFromIndex:111]; 程序这样写的时候是绝对会崩溃的.我们如果想它不要崩溃,那么应该怎么做呢. @try {

iOS开发——新特性Swift篇&amp;Swift 2.0 异常处理

Swift 2.0 异常处理 WWDC 2015 宣布了新的 Swift 2.0. 这次重大更新给 Swift 提供了新的异常处理方法.这篇文章会主要围绕这个方面进行讨论. 如何建造异常类型? 在 iOS 开发当中,我们会面对很多异常处理.在 Cocoa Touch 中我们使用 NSError 来进行异常处理.在新的 Swift 2.0 中,我们可以使用新的 ErrorType protocol. 在 Swift 中, enum 是最好的方法建立属于你自己的异常类型,你只要在你的 enum 中确