// Copyright (c) 2013, 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"; void argument() { throw new ArgumentError(499); } // Verify that void noSuchMethod() { (499 as dynamic).doesNotExist(); } void nullThrown() { throw null as dynamic; } void range() { throw new RangeError.range(0, 1, 2); } abstract class A { foo(); } void unsupported() { throw new UnsupportedError("unsupported"); } void unimplemented() { throw new UnimplementedError("unimplemented"); } void state() { [1, 2].single; } void cast() { dynamic d = 1; d as String; } main() { List errorFunctions = [ argument, noSuchMethod, nullThrown, //# nullThrown: ok range, unsupported, unimplemented, state, cast, ]; for (var f in errorFunctions) { bool hasThrown = false; try { f(); } on Error catch (e) { hasThrown = true; Expect.isTrue( e.stackTrace is StackTrace, "$e doesn't have a non-null stack trace"); } Expect.isTrue(hasThrown); } }