在我的 flutter 应用程序中,我有一个处理 http 请求并返回解码数据的 future 。但是如果 status code != 200
可以通过 .catchError()
处理程序获得,我希望能够发送错误。
future 在此:
Future<List> getEvents(String customerID) async {
var response = await http.get(
Uri.encodeFull(...)
);
if (response.statusCode == 200){
return jsonDecode(response.body);
}else{
// I want to return error here
}
}
当我调用这个函数时,我希望能够得到如下错误:
getEvents(customerID)
.then(
...
).catchError(
(error) => print(error)
);
最佳答案
您可以使用 return
或 throw
来抛出错误或异常。
return
:Future<void> foo() async {
if (someCondition) {
return Future.error('FooError');
}
}
throw
:Future<void> bar() async {
if (someCondition) {
throw Exception('BarException');
}
}
您可以使用 catchError
或 try-catch
block 来捕获错误或异常。
catchError
:foo().catchError(print);
try-catch
:try {
await bar();
} catch (e) {
print(e);
}
https://stackoverflow.com/questions/54474689/