OLD | NEW |
| (Empty) |
1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file | |
2 // for details. All rights reserved. Use of this source code is governed by a | |
3 // BSD-style license that can be found in the LICENSE file. | |
4 | |
5 class MyException { | |
6 MyException() {} | |
7 } | |
8 | |
9 class MyException1 extends MyException { | |
10 MyException1() : super() {} | |
11 } | |
12 | |
13 class MyException2 extends MyException { | |
14 MyException2() : super() {} | |
15 } | |
16 | |
17 class TryCatchTest { | |
18 static void test1() { | |
19 var foo = 0; | |
20 try { | |
21 throw new MyException1(); | |
22 } catch (MyException2 e) { | |
23 foo = 1; | |
24 } catch (MyException1 e) { | |
25 foo = 2; | |
26 } catch (MyException e) { | |
27 foo = 3; | |
28 } | |
29 Expect.equals(2, foo); | |
30 } | |
31 | |
32 static void test2() { | |
33 var foo = 0; | |
34 try { | |
35 throw new MyException1(); | |
36 } catch (MyException2 e) { | |
37 foo = 1; | |
38 } catch (MyException e) { | |
39 foo = 2; | |
40 } catch (MyException1 e) { | |
41 foo = 3; | |
42 } | |
43 Expect.equals(2, foo); | |
44 } | |
45 | |
46 static void test3() { | |
47 var foo = 0; | |
48 try { | |
49 throw new MyException(); | |
50 } catch (MyException2 e) { | |
51 foo = 1; | |
52 } catch (MyException1 e) { | |
53 foo = 2; | |
54 } catch (MyException e) { | |
55 foo = 3; | |
56 } | |
57 Expect.equals(3, foo); | |
58 } | |
59 | |
60 static void test4() { | |
61 var foo = 0; | |
62 try { | |
63 try { | |
64 throw new MyException(); | |
65 } catch (MyException2 e) { | |
66 foo = 1; | |
67 } catch (MyException1 e) { | |
68 foo = 2; | |
69 } | |
70 } catch (MyException e) { | |
71 Expect.equals(0, foo); | |
72 foo = 3; | |
73 } | |
74 Expect.equals(3, foo); | |
75 } | |
76 | |
77 static void test5() { | |
78 var foo = 0; | |
79 try { | |
80 throw new MyException1(); | |
81 } catch (MyException2 e) { | |
82 foo = 1; | |
83 } catch (var e) { | |
84 foo = 2; | |
85 } | |
86 Expect.equals(2, foo); | |
87 } | |
88 | |
89 static void test6() { | |
90 var foo = 0; | |
91 try { | |
92 throw new MyException(); | |
93 } catch (MyException2 e) { | |
94 foo = 1; | |
95 } catch (MyException1 e) { | |
96 foo = 2; | |
97 } catch (var e) { | |
98 foo = 3; | |
99 } | |
100 Expect.equals(3, foo); | |
101 } | |
102 | |
103 static void test7() { | |
104 var foo = 0; | |
105 try { | |
106 try { | |
107 throw new MyException(); | |
108 } catch (MyException2 e) { | |
109 foo = 1; | |
110 } catch (MyException1 e) { | |
111 foo = 2; | |
112 } | |
113 } catch (var e) { | |
114 Expect.equals(0, foo); | |
115 foo = 3; | |
116 } | |
117 Expect.equals(3, foo); | |
118 } | |
119 | |
120 static void test8() { | |
121 var e = 3; | |
122 var caught = false; | |
123 try { | |
124 throw new MyException(); | |
125 } catch (var exc) { | |
126 caught = true; | |
127 } | |
128 Expect.equals(true, caught); | |
129 Expect.equals(3, e); | |
130 } | |
131 | |
132 static void testMain() { | |
133 test1(); | |
134 test2(); | |
135 test3(); | |
136 test4(); | |
137 test5(); | |
138 test6(); | |
139 test7(); | |
140 test8(); | |
141 } | |
142 } | |
143 | |
144 main() { | |
145 TryCatchTest.testMain(); | |
146 } | |
OLD | NEW |