blob: ac3163e4200e96f736487051fa5da830b13b6004 [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.
// @dart=2.9
import 'dart:core';
void throwString() {
throw 'hello world!'; // LINT
}
void throwNull() {
throw null; // LINT
}
void throwNumber() {
throw 7; // LINT
}
void throwObject() {
throw new Object(); // LINT
}
void throwError() {
throw new Error(); // OK
}
void throwDynamicPrebuiltError() {
var error = new Error();
throw error; // OK
}
void throwStaticPrebuiltError() {
Error error = new Error();
throw error; // OK
}
void throwArgumentError() {
Error error = new ArgumentError('oh!');
throw error; // OK
}
void throwException() {
Exception exception = new Exception('oh!');
throw exception; // OK
}
void throwStringFromFunction() {
throw returnString(); // LINT
}
String returnString() => 'string!';
void throwExceptionFromFunction() {
throw returnException();
}
Exception returnException() => new Exception('oh!');
// TODO: Even though in the test this does not get linted, it does while
// analyzing the SDK code. Find out why.
dynamic noSuchMethod(Invocation invocation) {
throw new NoSuchMethodError(
new Object(),
invocation.memberName,
invocation.positionalArguments,
invocation.namedArguments);
}
class E extends Object with Exception {
static throws() {
throw new E(); // OK
}
}