unawaited_return_in_try_block
Details about the 'unawaited_return_in_try_block' diagnostic produced by the Dart analyzer.
Returning a 'Future' without 'await' inside a try block.
Description
#
The analyzer produces this diagnostic when a Future is returned from within
a try block, in an async function, without awaiting the returned
Future.
Example
#
The following code produces this diagnostic because the Future returned
from futureString is returned without using await. This can lead to
unexpected behavior because exceptions thrown by the Future won't be
caught by the catch block.
Future<String> futureString(Future<String> value) async {
try {
return value;
} catch (e) {
print(e);
return 'default';
}
}
Common fixes
#Add await before the returned Future:
Future<String> futureString(Future<String> value) async {
try {
return await value;
} catch (e) {
print(e);
return 'default';
}
}
除非另有说明,文档之所提及适用于 Dart 3.12.2 版本报告页面问题.