Commit | Line | Data |
---|---|---|
0875b58f | 1 | #include <stdio.h> |
2 | #include "exc.h" | |
3 | ||
4 | void func(void) | |
5 | { | |
6 | printf("cabbage\n"); | |
7 | TRY { | |
8 | printf("dibble\n"); | |
9 | THROW(EXC_FAIL, "excession"); | |
10 | printf("can't see me\n"); | |
11 | } CATCH switch (exc_type) { | |
12 | case 1: | |
13 | printf("exc type 1 (not possible)\n"); | |
14 | break; | |
15 | case EXC_FAIL: | |
16 | printf("exc type 2 (%s)\n", exc_s); | |
17 | break; | |
18 | default: | |
19 | RETHROW; | |
20 | } END_TRY; | |
21 | ||
22 | printf("fennel\n"); | |
23 | THROW(EXC_ERRNO, 53); | |
24 | } | |
25 | ||
26 | int main(void) | |
27 | { | |
28 | printf("apple\n"); | |
29 | TRY { | |
30 | printf("banana\n"); | |
31 | func(); | |
32 | printf("can't see me\n"); | |
33 | } CATCH switch (exc_type) { | |
34 | default: | |
35 | printf("%lu exception (val = %i)\n", exc_type, exc_i); | |
36 | break; | |
37 | } END_TRY; | |
caef48c7 MW |
38 | printf("hello! __exc_list = "); |
39 | if (__exc_list) printf("%p", (void *)__exc_list); | |
40 | else printf("(nil)"); | |
41 | putchar('\n'); | |
0875b58f | 42 | |
43 | return (0); | |
44 | } |