このタイプのエラー処理と抽象化が間違った方法で行われているかどうかわかりません。
Future<void> _refresh() {
return Future(() => throw someError)
.catchError((error) {
// maybe do something here
throw abstractedError; //or even the same error
});
_
それに応じてそれを使うために別の場所で可能な限り:
// in a widget/another place
void doSomething() {
_refresh()
.then((_) => bla())
.catchError((error) {
//showSomeAlert() or handleSomething()
});
}
_
Error
をキャッチできるようにするには、インポート_Dart:async
_を追加する必要があります。まず、try
catch
ブロックを使用してコードをラップします。
_ try {
Http.Response response = await Http.get(
url,
headers: headers,
)
.timeout(const Duration(seconds: 1));
} on TimeoutException catch (e) {
print('Timeout');
} on Error catch (e) {
print('Error: $e');
}
_