xref: /llvm-project/lldb/test/API/macosx/objc_exception_recognizer/main.m (revision f79c037b63278bc5b4481a1a55c68e42f0ea1461)
1#import <Foundation/Foundation.h>
2
3@interface MyException : NSException
4{
5  int extra_info;
6}
7- (NSException *) initWithExtraInfo: (int) info;
8@end
9
10@implementation MyException
11- (NSException *) initWithExtraInfo: (int) info
12{
13  [super initWithName: @"NSException" reason: @"Simple Reason" userInfo: nil];
14  self->extra_info = info;
15  return self;
16}
17@end
18
19int
20main(int argc, char **argv)
21{
22  // Set a breakpoint here for plain exception:
23  @try {
24    NSException *plain_exc = [[NSException alloc] initWithName: @"NSException" reason: @"Simple Reason" userInfo: nil];
25    [plain_exc raise];
26  }
27  @catch (id anException) {}
28
29  // Set a breakpoint here for MyException:
30  @try {
31    MyException *my_exc = [[MyException alloc] initWithExtraInfo: 100];
32    [my_exc raise];
33  }
34  @catch (id anException) {}
35
36  return 0;
37}
38