在Objective-C中提供了基礎類 - NSException
用於例外處理。
使用以下塊實現例外處理 -
範例程式碼 -
#import <Foundation/Foundation.h>
int main() {
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
NSMutableArray *array = [[NSMutableArray alloc]init];
@try {
NSString *string = [array objectAtIndex:10];
} @catch (NSException *exception) {
NSLog(@"%@ ",exception.name);
NSLog(@"Reason: %@ ",exception.reason);
}
@finally {
NSLog(@"@@finaly Always Executes");
}
[pool drain];
return 0;
}
執行上面範例程式碼,得到以下結果 -
2018-11-16 05:01:49.924 main[43936] NSRangeException
2018-11-16 05:01:49.926 main[43936] Reason: Index 10 is out of range 0 (in 'objectAtIndex:')
2018-11-16 05:01:49.926 main[43936] @@finaly Always Executes
在上面的程式中,由於使用了例外處理,在執行過程中能夠繼續執行使用後續程式,而不是程式因異常而終止。