void main() {
foo().catchError((error) {
if (error is Future) {
error.then((value) => print('value = $value'));
}
});
}
Future<void> foo() async {
throw Future.error('FooError');
}
该错误被捕获在catchError
内部,但是在该示例中,我无法检索到Future.error
的值FooError
。
答案 0 :(得分:0)
那是Future.error
,所以您必须在上面再次使用catchError
。
void main() {
foo().catchError((error) {
if (error is Future) {
error.catchError((error) => print(error)); // prints 'FooError'
}
});
}
Future<void> foo() async {
throw Future.error('FooError');
}
答案 1 :(得分:0)
您只是没有,这样做是没有意义的。
您可以抛出错误:
useBeforeunload(() => "Are you sure to close this tab?");
或者如果出于某种原因而不方便,您可以使用void main() {
foo().catchError((error) {
print('error = $error');
});
}
Future<void> foo() async {
throw 'FooError';
}
创建一个已经存在错误的Future:
Future.error
但是实际上void main() {
foo().catchError((error) {
print('error = $error');
});
}
Future<void> foo() {
return Future.error('FooError');
}
throw
是多余的,没有用。