gpt4 book ai didi

dart - Dart 中的异步/ future 错误处理未按预期工作

转载 作者:行者123 更新时间:2023-12-02 20:52:28 26 4
gpt4 key购买 nike

我已经花了几个小时研究 Futures and Error Handling Dart 页面上的部分没有任何运气。谁能解释一下为什么下面的代码不打印All good

import 'dart:async';

main() async {
try {
await func1();
} catch (e) {
print('All good');
}
}

Future func1() {
var completer = new Completer();
func2().catchError(() => completer.completeError('Noo'));
return completer.future;
}

Future func2() {
var completer = new Completer();
completer.completeError('Noo');
return completer.future;
}

最佳答案

func1中,用作catchError参数的函数必须是关于错误的(dynamic) =>dynamic类型的子类型:

Unhandled exception:

type '() => dynamic' is not a subtype of type '(dynamic) => dynamic' of 'f'.

因此你应该使用:

Future func1() {
var completer = new Completer();
func2().catchError((e) => completer.completeError('Noo'));
return completer.future;
}

您不会收到任何分析器错误,因为参数是使用 Function 键入的。您可以file an issue了解为什么该类型不是匹配 (dynamic)=>dynamic 的更具体类型

关于dart - Dart 中的异步/ future 错误处理未按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35502097/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com