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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。