forked from OSchip/llvm-project
				
			
		
			
				
	
	
		
			48 lines
		
	
	
		
			778 B
		
	
	
	
		
			Objective-C
		
	
	
	
			
		
		
	
	
			48 lines
		
	
	
		
			778 B
		
	
	
	
		
			Objective-C
		
	
	
	
| #import <Foundation/Foundation.h>
 | |
| 
 | |
| @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;
 | |
| }
 |