#import @interface MyClass : NSObject { } - (int) callMeIThrow; - (int) iCatchMyself; @end @implementation MyClass - (int) callMeIThrow { NSException *e = [NSException exceptionWithName:@"JustForTheHeckOfItException" reason:@"I felt like it" userInfo:nil]; @throw e; return 56; } - (int) iCatchMyself { int return_value = 55; @try { return_value = [self callMeIThrow]; } @catch (NSException *e) { return_value = 57; } return return_value; } @end int main () { int return_value; MyClass *my_class = [[MyClass alloc] init]; NSLog (@"I am about to throw."); return_value = [my_class iCatchMyself]; return return_value; }