mirror of
https://github.com/dart-lang/sdk
synced 2024-11-02 12:24:24 +00:00
40611dd611
TBR=kustermann@google.com BUG= Review URL: https://codereview.chromium.org/2454993003 .
67 lines
1.1 KiB
Dart
67 lines
1.1 KiB
Dart
// 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();
|
|
}
|