2013-02-14 11:05:42 +08:00
|
|
|
#import <Foundation/Foundation.h>
|
|
|
|
|
|
|
|
@interface MyClass : NSObject
|
|
|
|
{
|
|
|
|
}
|
|
|
|
- (int) callMeIThrow;
|
2013-11-07 08:11:47 +08:00
|
|
|
- (int) iCatchMyself;
|
2013-02-14 11:05:42 +08:00
|
|
|
@end
|
|
|
|
|
|
|
|
@implementation MyClass
|
|
|
|
- (int) callMeIThrow
|
|
|
|
{
|
|
|
|
NSException *e = [NSException
|
|
|
|
exceptionWithName:@"JustForTheHeckOfItException"
|
|
|
|
reason:@"I felt like it"
|
|
|
|
userInfo:nil];
|
|
|
|
@throw e;
|
|
|
|
return 56;
|
|
|
|
}
|
2013-11-07 08:11:47 +08:00
|
|
|
|
|
|
|
- (int) iCatchMyself
|
|
|
|
{
|
|
|
|
int return_value = 55;
|
|
|
|
@try
|
|
|
|
{
|
|
|
|
return_value = [self callMeIThrow];
|
|
|
|
}
|
|
|
|
@catch (NSException *e)
|
|
|
|
{
|
|
|
|
return_value = 57;
|
|
|
|
}
|
|
|
|
return return_value;
|
|
|
|
}
|
2013-02-14 11:05:42 +08:00
|
|
|
@end
|
|
|
|
|
|
|
|
int
|
|
|
|
main ()
|
|
|
|
{
|
|
|
|
int return_value;
|
|
|
|
MyClass *my_class = [[MyClass alloc] init];
|
|
|
|
|
|
|
|
NSLog (@"I am about to throw.");
|
|
|
|
|
2013-11-07 08:11:47 +08:00
|
|
|
return_value = [my_class iCatchMyself];
|
2013-02-14 11:05:42 +08:00
|
|
|
|
|
|
|
return return_value;
|
|
|
|
}
|