美文网首页iOS
iOS 开发异常处理

iOS 开发异常处理

作者: 75afc06dcc73 | 来源:发表于2016-08-18 13:59 被阅读122次

在开发APP时,我们通常都会需要捕获异常,防止应用程序突然的崩溃,防止给予用户不友好的一面。其实OBJECT-C的异常处理方法和java的雷同,懂JAVA的朋友一看就懂

使用@try、catch捕获异常:

以下是最简单的代码写法,其中@finally可以去掉:

@try {
    // 可能会出现崩溃的代码
}
@catch (NSException *exception) {
    // 捕获到的异常exception
}
@finally {
// 结果处理
}

在这里举多一具比较详细的方法,抛出异常:

@try {
// 1
[self tryTwo];
}
@catch (NSException *exception) {
// 2
NSLog(@"%s\n%@", __FUNCTION__, exception);
//        @throw exception; // 这里不能再抛异常
}
@finally {
// 3
NSLog(@"我一定会执行");
}
// 4
// 这里一定会执行
NSLog(@"try");


tryTwo方法代码:

- (void)tryTwo
{
    @try {
    // 5
    NSString *str = @"abc";
    [str substringFromIndex:111]; // 程序到这里会崩
}
@catch (NSException *exception) {
    // 6
    //   @throw exception; // 抛出异常,即由上一级处理
    // 7
    NSLog(@"%s\n%@", __FUNCTION__, exception);
    }
  @finally {
    // 8
    NSLog(@"tryTwo - 我一定会执行");
  }

// 9
// 如果抛出异常,那么这段代码则不会执行
NSLog(@"如果这里抛出异常,那么这段代码则不会执行");
}

为了方便大家理解,我在这里再说明一下情况:

如果6抛出异常,那么执行顺序为:1->5->6->8->3->4

如果6没抛出异常,那么执行顺序为:1->5->7->8->9->3->4

相关文章

  • IOS 捕获异常工具UncaughtExceptionHandl

    原文IOS 捕获异常工具UncaughtExceptionHandleriOS程序异常Crash友好化处理 开发i...

  • iOS开发--异常处理

    程序都会有bug,那么在有bug和异常时能不能给个提醒呢,今天咱们来看看这个问题怎么解决 首先说下基本的NSExc...

  • iOS 开发异常处理

    在开发APP时,我们通常都会需要捕获异常,防止应用程序突然的崩溃,防止给予用户不友好的一面。其实OBJECT-C的...

  • Swift 2.0 异常处理

    如何建造异常类型? 在 iOS 开发当中,我们会面对很多异常处理。在 Cocoa Touch 中我们使用 NSEr...

  • swift-之try-catch

    前段时间朋友打电话偶尔给我抱怨到,有人质疑为什么iOS 开发没有用try catch处理异常,自己开发在iOS开发...

  • iOS开发中的异常处理

    程序运行有可能会出现错误,一旦遇到错误时该如何处理?在实际的开发中一般有两种错误处理的方式:通过函数返回值解决错误...

  • iOS开发日常异常处理记录

    转眼已经两年没有更新记录了,简书还在,真好!没错,爷还在搞iOS,真好!写个笔记,记录平时开发的错误总结,虽然有的...

  • iOS异常处理

    开发iOS应用,解决Crash问题始终是一个难题。Crash分为两种,一种是由EXC_BAD_ACCESS引起的,...

  • iOS异常处理

    尽管当iphone应用崩溃时,它不会告诉用户发生了什么,但我们仍然可以为应用添加异常和信号处理,以此记录和展示发生...

  • iOS开发--处理不等高TableViewCell的小花招

    iOS开发--处理不等高TableViewCell的小花招 iOS开发--处理不等高TableViewCell的小花招

网友评论

    本文标题:iOS 开发异常处理

    本文链接:https://www.haomeiwen.com/subject/piyvsttx.html