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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 莞尔,一笑。 中级黑马   /  2016-6-7 22:59  /  886 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

异常处理
1.程序的错误
   a.一般情况下指的是我们的程序源代码有语法错我
  b.错误的后果:无法编译,不能执行
2.BUG
   .指的是,程序可以编译,连接,执行,只不过程序执行出来的结果并不是我们所预设的那样
3.异常
1)概念:指的是,程序可以编译,连接,执行,当程序在运行的时候程序处于某种特殊情况下的时候,程序的执行就会报错,这种情况较异常.
特点:异常不是一定会发生,而是当程序在运行的时候处于某种特定情况的时候才发生
2)后果:程序立即终止运行,后面的代码不会执行(闪退的原因:1:程序所占用的空间太大.2:程序发生异常..............)
4.异常的处理:
使用@try...@catch处理异常:将有可能发生异常的代码用@try围起来.

@try
{
    有可能发生异常的代码;
}
@catch(NSException *ex)
执行步骤:
a.如果@try中的代码在执行的时候发生了异常,这个时候程序不会崩溃,而是会立即跳转到@catch中执行代码,@catch中的代码执行完毕后再往下执行
b.如果@try中的代码在执行的时候没有发生异常,这个时候就会跳过;

5使用注意:
1.在@try中的代码执行的时候,如果发生异常会将发生异常的信息封装为1个NSException对象,把这个对象的地址赋值给@catch的参数,然后再执行@catch的代码.所以@catch的参数指向了错误对象,在@catch中如果想要拿到发生异常的原因,就可以访问这个参数的对象.
2.@catch中的代码只有在发生异常的时候,才会执行,所以在@catch中一般写处理异常的代码
3.@catch后面还可以跟1个@finally代码块,无论@try中是否有异常发生,@finally中的代码都会被执行,
4.@try…@catch不是所有的异常都能处理,C语言的异常处理不聊,只能处理OC,但也不是所有OC中的异常都可以处理;
(一般情况下都是通过逻辑判断来减少异常的发生)



1 个回复

倒序浏览
过来复习一下,挺详细!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马