mirror of
https://github.com/dart-lang/sdk
synced 2024-09-16 03:47:13 +00:00
dfa7916418
R=bkonyi@google.com Change-Id: I2f455fd681b66c43cbcd873f3d3d278a5ff5c843 Reviewed-on: https://dart-review.googlesource.com/12762 Commit-Queue: Terry Lucas <terry@google.com> Reviewed-by: Terry Lucas <terry@google.com>
64 lines
1.5 KiB
Dart
64 lines
1.5 KiB
Dart
// Copyright (c) 2011, 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.
|
|
// Dart test program for testing throw statement
|
|
|
|
import "package:expect/expect.dart";
|
|
|
|
class MyException {
|
|
const MyException();
|
|
}
|
|
|
|
class OtherException {
|
|
const OtherException();
|
|
}
|
|
|
|
class RethrowTest {
|
|
MyException currentException;
|
|
|
|
void throwException() {
|
|
currentException = new MyException();
|
|
throw currentException;
|
|
}
|
|
|
|
void testRethrowPastUncaught() {
|
|
try {
|
|
try {
|
|
try {
|
|
throwException();
|
|
Expect.fail("Should have thrown an exception");
|
|
} catch (e) {
|
|
Expect.equals(true, identical(e, currentException));
|
|
rethrow;
|
|
Expect.fail("Should have thrown an exception");
|
|
}
|
|
} on OtherException catch (e) {
|
|
Expect.fail("Should not have caught OtherException");
|
|
}
|
|
} catch (e) {
|
|
Expect.equals(true, identical(e, currentException));
|
|
}
|
|
}
|
|
|
|
void testRethrow() {
|
|
try {
|
|
try {
|
|
throwException();
|
|
Expect.fail("Should have thrown an exception");
|
|
} catch (e) {
|
|
Expect.equals(true, identical(e, currentException));
|
|
rethrow;
|
|
Expect.fail("Should have thrown an exception");
|
|
}
|
|
} catch (e) {
|
|
Expect.equals(true, identical(e, currentException));
|
|
}
|
|
}
|
|
}
|
|
|
|
main() {
|
|
RethrowTest t = new RethrowTest();
|
|
t.testRethrow();
|
|
t.testRethrowPastUncaught();
|
|
}
|