Stream<T>.error 构造函数
- @Since("2.5")
- Object error,
- [StackTrace? stackTrace]
创建一个在完成后发出单个错误事件的流。
此流发出一个包含 error
和 stackTrace
的单个错误事件,然后通过完成事件完成。
示例
Future<void> tryThings(Stream<int> data) async {
try {
await for (var x in data) {
print('Data: $x');
}
} catch (e) {
print(e);
}
}
tryThings(Stream<int>.error('Error')); // prints "Error".
返回的流在效果上相当于使用 Future<T>.error(error, stackTrace).asStream()
或 (() async* { throw error; } ())
创建的流,不过您还可以控制堆栈跟踪。
实现
@Since("2.5")
factory Stream.error(Object error, [StackTrace? stackTrace]) {
// TODO(40614): Remove once non-nullability is sound.
checkNotNullable(error, "error");
return (_AsyncStreamController<T>(null, null, null, null)
.._addError(error, stackTrace ?? AsyncError.defaultStackTrace(error))
.._closeUnchecked())
.stream;
}