blob: c8f31d1ee90e7ed81f9357ab3efc1738cb461b44 [file] [log] [blame]
// Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
import 'package:expect/expect.dart';
testNormalRethrow() {
var x = 0;
try {
try {
throw x++;
} catch (e) {
Expect.isTrue(e == 0);
x++;
rethrow;
}
} catch (e) {
Expect.isTrue(e == 0);
x++;
}
Expect.isTrue(x == 3);
}
testNormalRethrow2() {
var x = 0;
try {
try {
throw x++;
} on int catch (e) {
Expect.isTrue(e == 0);
x++;
rethrow;
}
} catch (e) {
Expect.isTrue(e == 0);
x++;
}
Expect.isTrue(x == 3);
}
testRethrowWithinTryRethrow() {
var x = 0;
try {
try {
throw x++;
} on int catch (e) {
Expect.isTrue(e == 0);
x++;
try {
x++;
rethrow;
} finally {
x++;
}
}
} catch (e) {
Expect.isTrue(e == 0);
x++;
}
Expect.isTrue(x == 5);
}
main() {
testNormalRethrow();
testNormalRethrow2();
testRethrowWithinTryRethrow();
}