一直听说iOS有异常处理机制,却从来没有关系过,今天小生就来关心下iOS的异常处理机制吧。
以下文字是从Object-C2.0(苹果官方文档)中翻译的,特此注明。
异常处理
Object-C提供了对于异常处理和线程同步的支持,啊哈,也就是这一章和线程(关于线程同步,大家可以看这里,
http://blog.sina.com.cn/s/blog_69081e060100uomh.html)那一章要讲的内容。在GNU编译器(GCC)3.3或以上版本上使用-fobjc-exceptions指令,可以支持以上特性。
注意:要在一个应用里同时使用这些特性,应用必须在MAC OS X v10.3或者以上版本中。因为早期版本的运行环境不支持异常处理和线程同步。
处理异常
Object-C语言的异常处理符号和C++、JAVA相似。再加上使用NSException,NSError或者自定义的类,你可以在你的应用程序里添加强大的错误处理机制。
异常处理机制是由这个四个关键字支持的:@try,@catch,@thorw,@finally。当代码有可能出现异常时,我们把他放到@try语句块中。@catch()块包含了处理@try块里的抛出的异常的逻辑。无论异常是否发生,@finally块里面的语句都会执行。如果直接使用@throw块来抛出异常,这个
异常本质上是一个OC的对象。咱们可以使用NSException对象,但是不局限于他们。
下面是一个典型的异常处理块的例子:
Cup *cup = [[Cup