zoukankan      html  css  js  c++  java
  • iOS -- @try

    @try
    {
        // 业务逻辑
    }
    @catch (异常类型名1 ex)
    {
        //异常处理代码
    }
    @catch (异常类型名2 ex)
    {
        //异常处理代码
    }
    // 可以捕捉 N 个 异常 ...
    @finally
    {
    //回收资源
    }
    //捕获后执行的代码

    这是苹果的一种异常捕获机制,不常用

    将可能出现异常的代码放在@try里,如果出现异常,会查找是否有处理这个异常的catch,在catch里处理完毕之后,执行@finally中的代码

    @catch中也可能再次抛出异常,如果有异常没有被catch处理的话,finally中的代码会执行,finally后面的代码不会执行

    ios中很少用到try和catch

    简单的来说,Apple虽然同时提供了错误处理(NSError)和异常处理(exception)两种机制,但是Apple更加提倡开发者使用NSError来处理程序运行中可恢复的错误。而异常被推荐用来处理不可恢复的错误。

    原因有几个,在非gc情况下,exception容易造成内存管理问题(文档有描述即使是arc下,也不是安全的);exception使用block造成额外的开销,效率较低等等,另外这也的确是Cocoa开发者的习惯。




    try catch还有一个灵活的巧用:

    有时候我们加的全局断点并不能跳到异常的代码块,并且没有答应任何异常信息,
    我们根据异常的上下文 找到异常代码块但是不知道到底是报的什么异常,
    那么可以对那个异常代码块包上一个try catch ,
    然后在catch中打印exception的内容,这样就能够知道到底是出现了什么异常。
    每当出现bug或者crash的时候,我们总是习惯性的加入了NSLog或则单步调试。




     
  • 相关阅读:
    (转)Android IPC机制详解
    (转)android 多线程
    (转)android进程间通信:使用AIDL
    (转)如何调用SQLITE工具查看数据库
    (转)Android 自动 打包
    (转)如何手动编译一个APK
    (转)编译Android源码的全过程
    Js打造层拖动实例:网站菜单拖拽移位效果
    JS鼠标悬停时动态翻滚的紫色导航条
    jQuery1.3.2竖向的伸缩菜单
  • 原文地址:https://www.cnblogs.com/chebaodaren/p/9661090.html
Copyright © 2011-2022 走看看