我看到的唯一区别是onError还将Stacktrace作为参数传递。在哪些情况下,你会选择另一种?
Future<T> onError<E extends Object>(FutureOr<T> Function(E, StackTrace) handleError, {bool Function(E)? test})
Future<T> catchError(Function onError, {bool Function(Object error)? test});
CCD_ 1实际上是CCD_ 2的更精确类型的版本。
因此,使用onError
,您可以捕获特定的错误类型,并指定正确类型的错误处理程序函数,而不是所有类型,只指定一个具有catchError
的函数。
在onError
中,错误将被视为未捕获异常,而catchError
则不是。