|
|
1.1 moko 1: @main[]
2:
3: 1. break in try with catch and finally
4: ^while(1){
5: ^try{
6: $a[aa^break[]bb]
7: ^throw[;x]
8: }{
9: catch!
10: $exception.handled(1)
11: ^method[1]
12: ^method[2]
13: }{
14: finally!
15: ^method[1]
16: ^method[2]
17: }
18: brake happend.
19: }
20: break moment: $a
21:
22: 2. break in try with finally
23: ^while(1){
24: ^try{
25: ^break[]
26: }{}{
27: finally!
28: ^method[1]
29: ^method[2]
30: }
31: brake happend.
32: }
33:
34: 3. break in try with finally and inactive catch
35: ^while(1){
36: ^try{
37: ^break[]
38: }{
39: catch!
40: }{
41: finally!
42: ^method[1]
43: ^method[2]
44: }
45: brake happend.
46: }
47:
48: 4. break in catch with finally
49: ^while(1){
50: ^try{
51: ^throw[;x]
52: }{
53: catch!
54: $exception.handled(1)
55: ^break[]
56: ^method[1]
57: }{
58: finally!
59: ^method[1]
60: ^method[2]
61: }
62: brake happend.
63: }
64:
65: 5. continue in catch with break in finally
66: ^while(1){
67: ^try{
68: ^throw[;x]
69: }{
70: catch!
71: $exception.handled(1)
72: ^continue[]
73: ^method[1]
74: }{
75: finally!
76: ^method[1]
77: ^method[2]
78: ^break[]
79: ^method[3]
80: }
81: brake happend.
82: }
83:
84: 6. break in nested try with finally inside
85: ^while(1){
86: ^try{
87: ^try{
88: $a[aa^break[]bb]
89: ^throw[;x]
90: }{}{
91: $finally[finally!
92: ^method[1]
93: ^method[2]]
94: }
95: }{
96: catch!
97: $exception.handled(1)
98: ^method[1]
99: ^method[2]
100: }
101: brake happend.
102: }
103: $finally
104:
1.2 ! moko 105: 7. just try exception source check
! 106:
! 107: ^try-catch{
! 108: ^try{
! 109: ^no-such-method[]
! 110: }{
! 111: }
! 112: }
! 113:
1.1 moko 114: @method[n]
115: call number $n