dart:async
库中Future.catchError
方法的用法介绍如下。
用法:
Future<T> catchError(
Function onError,
{bool test(
Object error
)?}
)
处理由此 Future 发出的错误。
这是"catch" 块的异步等效项。
返回一个新的 Future,它将使用这个未来的结果或调用 onError
回调的结果来完成。
如果这个未来以一个值结束,则返回的未来以相同的值结束。
如果这个future 以错误结束,则首先使用错误值调用test
。
如果 test
返回 false,则此 catchError
不会处理异常,并且返回的 future 完成时会出现与此 future 相同的错误和堆栈跟踪。
如果 test
返回 true
,则调用 onError
并带有错误和可能的堆栈跟踪,并且返回的 future 以与 then 的 onError
完全相同的方式完成此调用的结果。
如果省略 test
,则默认为始终返回 true 的函数。 test
函数不应抛出,但如果抛出,则将其处理为如同 onError
函数已抛出。
请注意,在添加侦听器之前,期货不会延迟报告错误。如果第一个 catchError
(或 then
)调用发生在此未来完成并出现错误之后,则该错误将报告为未处理的错误。请参阅 Future 上的说明。
例子:
Future.delayed(
const Duration(seconds: 1),
() => throw 401,
).then((value) {
throw 'Unreachable';
}).catchError((err) {
print('Error: $err'); // Prints 401.
}, test: (error) {
return error is int && error >= 400;
});
相关用法
- Dart Future.doWhile用法及代码示例
- Dart Future.any用法及代码示例
- Dart Future.value用法及代码示例
- Dart Future.wait用法及代码示例
- Dart Future.whenComplete用法及代码示例
- Dart Future.error用法及代码示例
- Dart Future.timeout用法及代码示例
- Dart Future.sync用法及代码示例
- Dart Future.delayed用法及代码示例
- Dart Future用法及代码示例
- Dart FutureExtensions.onError用法及代码示例
- Dart Function.apply用法及代码示例
- Dart FileList.first用法及代码示例
- Dart FileList.length用法及代码示例
- Dart File用法及代码示例
- Dart Finalizer.attach用法及代码示例
- Dart Float32List.view用法及代码示例
- Dart FileSystemEntity用法及代码示例
- Dart FileSystemEntity.resolveSymbolicLinks用法及代码示例
- Dart Finalizable用法及代码示例
- Dart File.renameSync用法及代码示例
- Dart Float32x4List.sublist用法及代码示例
- Dart Finalizer用法及代码示例
- Dart FileSystemEntity.resolveSymbolicLinksSync用法及代码示例
- Dart FileList.elementAt用法及代码示例
注:本文由纯净天空筛选整理自dart.dev大神的英文原创作品 catchError method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。