A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© xgjyjy 中级黑马   /  2016-3-17 12:24  /  694 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

.


1. 错误:
    1). 一般情况下,指的是我们的程序的源代码有语法错误.
    2). 错误的后果: 无法编译 更谈不上执行.
    2). 解决方案: 将错误的代码修改为符合语法规范的代码不就OK了.


2. BUG
    1). 指的是,程序可以编译、链接、执行. 只不过程序执行出来的结果并不是我们所预设的那样.

    2). 解决方案: 99%的Bug都是因为变量的值没有按照我们所预想的那样去变化.
                 通过断点调试 去监视变量的值是如何变化的.
                 分析为什么会乱变化. 这样就可以找到我们的BUG


3. 异常
    1).概念:指的是,程序可以编译、链接、执行.
           当程序在运行的时候,程序处于某种特殊情况下的时候 程序的执行就会报错.
           这种情况我们叫做异常.

        特点: 异常不是一定会发生.而是当程序在运行的时候处于某种特定情况的时候才会发生.

    2).后果: 程序立即终止运行.后面的代码不会执行.
       闪退的原因:
       a. 程序所占用的空间太大.
       b. 程序发生了异常
       .....



4. 异常的处理.'

    1). 处理异常的目的: 希望程序在执行的时候,如果发生了异常. 程序不要崩溃,而是继续往下执行代码.

    2). 使用@try...@catch处理异常.

    3). 将有可能发生异常的代码使用@try围起来.
        
         
        @try
        {
            在执行的时候有可能会发生异常的代码;
        }
        @catch(NSException *ex)
        {

        }

    4). 执行步骤

        a. 如果@try中的代码在执行的时候,发生了异常. 这个时候程序不会崩溃.
           而是会立即跳转到@catch中执行代码. @catch中的代码执行完毕之后,再继续往下执行.

           如果@try中的代码在执行的时候,没有发生异常,这个时候就会跳过@catch 往下执行.


        
    5).作用: 让代码在执行的时候如果发生了异常 而不崩溃.


5. 使用注意

    1). 在@try中的代码执行的时候,如果发生了异常.
        会将发生异常的信息.封装为1个 NSException 对象
        把这个对象的地址.赋值给@catch的参数.然后再执行@catch的代码.

        所以,@catch的参数指向了错误对象.

        在@catch中如果想要拿到发生异常的原因.就可以访问这个参数对象.


    2). @catch中的代码只有在发生异常的时候,才会执行.
        所以.@catch中一般我们写处理异常的代码.


    3). @catch后面还可以跟1个@finally代码块.
        无论@try中是否有异常发生.@finally中的代码都会被执行 .


    4). @try..@catch并不是万能的 不是所有的异常都可以处理.
        C语言的异常处理不了. 只能处理OC的异常.

    5). @try..@catch在我们的代码中很少使用.
        我们一般情况下都是 通过逻辑判断来减少异常的发生.



0 个回复

您需要登录后才可以回帖 登录 | 加入黑马