Flutter 在Dart中剪切“尝试捕捉”块的详细信息

Flutter 在Dart中剪切“尝试捕捉”块的详细信息,flutter,dart,Flutter,Dart,我有很多网络调用,try-catch块非常冗长,在这个样板文件上进行剪切的最佳方式是什么? 我想替换那样的东西 Future<Something> getSomething(String id) async { try { return await _api.getSomething(id); } on DioError catch (error) { return Future.error(error.formattedMessage);

我有很多网络调用,try-catch块非常冗长,在这个样板文件上进行剪切的最佳方式是什么? 我想替换那样的东西

  Future<Something> getSomething(String id) async {
    try {
      return await _api.getSomething(id);
    } on DioError catch (error) {
      return Future.error(error.formattedMessage);
    }
  }
Future-getSomething(字符串id)异步{
试一试{
返回等待api.getSomething(id);
}关于错误捕获(错误){
返回Future.error(error.formattedMessage);
}
}
能称某事为

  Future<Something> getSomething(String id) async {
    networkCall { _api.getSomething(id); }
  }
Future-getSomething(字符串id)异步{
网络调用{u api.getSomething(id);}
}

Dart中是否有可以让我实现这一目标的结构?

不,没有任何语言功能可以满足您的需求

如果您只想让函数完成
DioError
,而不需要创建新的异常,您可以删除try/catch块,让调用方处理错误

如果您确实希望经常对特定类型的异常执行某些处理,则始终可以编写一个包装器方法来执行此操作:

Future HandleDiaError(Future函数()f)异步{
试一试{
返回等待f();
}关于错误捕获(e){
返回Future.error(error.formattedMessage);
}
}
您可以这样使用:

Future-getSomething(字符串id)异步{
return wait-handleDioError(()=>_-api.getSomething(id));
}