Dart 这个省道错误处理程序有什么问题?

Dart 这个省道错误处理程序有什么问题?,dart,flutter,Dart,Flutter,我正在dart/FLUTER中做一些(我认为)基本的异常处理。从上周(2019年3月15日)起,我正在使用最新版本的dart和FLIFT 这是我的密码: void MyMethod() { Storage.getFilePaths().then((paths) { //do something }).catchError((Exception error) { //do something else return null; });

我正在dart/FLUTER中做一些(我认为)基本的异常处理。从上周(2019年3月15日)起,我正在使用最新版本的dart和FLIFT

这是我的密码:

void MyMethod() {
    Storage.getFilePaths().then((paths) {
      //do something
    }).catchError((Exception error) {
      //do something else
      return null;
    });
 }
但是,当运行程序和发生异常时,我会收到下面的消息,但看不出问题出在哪里

'无效参数(onError):错误处理程序必须接受一个对象或 一个对象和一个StackTrace作为参数,并返回有效的 结果:闭包:(异常)=>Null'

我想我错过了一些愚蠢的事情,我很想知道那是什么

}).catchError((Exception error) {
一定是

}).catchError((Object error) {

您不能在此限制为
异常。Dart可以抛出各种各样的值。

那么我如何获得实际的错误呢?我需要访问抛出错误的字段。您可能需要像
}.catchError((对象错误){if(错误为MyError)print((错误为MyError).someField;}但是没有更多的细节是很难判断的。也许它值得一个新的问题,一个完整的但最少的复制。也可以考虑使用<代码>异步> /代码> /<代码>等待< /代码>使用<代码>尝试<代码> >代码> catch <代码>,而不是<代码> CaskError <代码>。<代码> CaskError <代码>可能是相当棘手的,如果我不提供TH类型的话。e error(
Object
)如果
err
没有预期的字段(有意义),Dart不会抱怨,但在执行过程中会失败。我一回到我的位置就会尝试您建议的方法。