eac5d6c7 |
1 | #include "cll1.h" |
2 | |
3 | void private_method(int i) |
4 | { |
5 | if(i==2) |
6 | { |
7 | fail(LOCAL_FAILURE); |
8 | } |
9 | else if(i==6) |
10 | { |
11 | fail(EVIL_FAILURE); |
12 | } |
13 | else |
14 | { |
15 | printf("nuda #%d\n",i); |
16 | } |
17 | } |
18 | |
19 | void some_job(int i) |
20 | { |
21 | try |
22 | { |
23 | private_method(i); |
24 | private_method(i+1); |
25 | private_method(i+2); |
26 | } |
27 | else_switch_failures |
28 | { |
29 | case EVIL_FAILURE: puts("[serious error]"); pass_failure; |
30 | case LOCAL_FAILURE: puts("[non-fatal error detected]"); break; |
31 | default : puts("[sorry, vole, error]"); |
32 | } |
33 | } |
34 | |
35 | program |
36 | { |
37 | |
38 | try |
39 | { |
40 | some_job(1); |
41 | some_job(3); |
42 | some_job(6); |
43 | some_job(2); |
44 | some_job(7); |
45 | } |
46 | else |
47 | { |
48 | puts("sorry, vole, error!"); |
49 | } |
50 | |
51 | try |
52 | { |
53 | some_job(1); |
54 | some_job(2); |
55 | some_job(4); |
56 | some_job(7); |
57 | } |
58 | else_catch(EVIL_FAILURE) |
59 | { |
60 | puts("totaly screwed."); |
61 | } |
62 | else |
63 | { |
64 | puts("ahem... something went wrong."); |
65 | } |
66 | } |