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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。
