Objective-C 学习笔记 - part 11 - 错误处理

Object-C 提供类似 Java / C++风格的错误处理模型,当使用 -fobjc-exceptions 开关(gcc > 3.3)时,它可以工作,但是只限于 OS X v10.3 以后的版本,之前的版本并不提供这一支持。

使用错误捕获的原则与其它语言类似:你不能用它来当作正常的处理流的判断条件,而把它仅仅当作“意外”

可以使用多个 @catch 块来捕获不同的错误类型。

Cup *cup = [[Cup alloc] init];

@try {

[cup fill];

}

@catch (NSException *exception) {

NSLog(@"main: Caught %@: %@", [exception name], [exception reason]);

}

@finally {

[cup release];

}

异常类可以是你自己实现的类,不过一般是 NSException 或者它的子类。

更多关于错误处理的讨论见:

http://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/ErrorHandlingCocoa/ErrorHandling/ErrorHandling.html#//apple_ref/doc/uid/TP40001806