Objective-C 编程语言(11)异常处理----使能异常处理、异常处理

转载请标明出处: http://blog.csdn.net/zhangxingping

异常处理

 

Objective-C的异常处理语法和Java以及C++中的有些类似。通常在程序需要使用到NSException或者是NSError或者是自定义的类来增加程序处理错误的能力。本章中将对异常处理进行概括的叙述,更多信息请参考《Cocoa中的异常处理》

 

使能异常处理

Objective-C语言提供了对异常处理的支持。使用GCC 3.3或者更高版本的编译器时,需要打开-fobjc -exceptions选项来支持异常处理。(注意:这将使得应用程序只能在Mac OS X v10.3或者更高版本的系统上运行。之前的系统是不支持运行时异常处理和同步的。)

 

异常处理

异常是一种能打断程序正常执行的状况。产生异常的原因很多,有硬件的也有软件的。例如,做算数运算时,被除数为零就会产生异常;运算出现上溢或者下溢都会产生异常;调用未定义的指令(比如企图调用没有实现的方法)或者企图越界访问集合都会产生异常。

 

Objective-C中支持异常处理的指令有:@try@catch@throw@finally四个:

  有可能产生异常的代码放置在@try代码块中。

  @catch()代码块负责处理@try代码中抛出的异常。可以使用多个@catch()块来捕获不同种类的多个异常。

  @finally()块中的代码是必须执行的,无论是否有异常抛出。

  使用@throw命令字抛出的异常实际上是一个Objective-C对象。通常使NSException类型的对象,但这不是必须的。

 下面的示例代码描述了简单的异常处理流程:

Cup * cup = [ [Cup alloc] init];
@try
{
    [Cup fill];
}
@catch(NSException * exception)
{
    NSLog(@”main: Caught %@: %@”,[exception name], [exception reason] );
}
@finally
{
    [cup release];
}

你可能感兴趣的:(编程,exception,cocoa,gcc,语言,编译器)