【发布时间】:2022-10-01 07:37:08
【问题描述】:
这是我从网络捕获数据的代码:
它每次都会因多种异常而崩溃,我想在屏幕上显示错误但不要使应用程序崩溃并终止它
Future<SCoin> fetchCoinData(int giveMeIndex) async {
final response = await http.get(Uri.parse(url));
final jsonresponse = json.decode(response.body);
if (response.statusCode == 200) {
for (var i in jsonresponse) {
var coinItem = SCoin(
name: i[\'name\'],
image: i[\'image\'],
current_price: i[\'current_price\']);
coins.add(coinItem);
}
return SCoin.fromJson(jsonresponse[giveMeIndex]);
} else {
throw Exception(response.statusCode);
}
}
这是我的小部件来显示数据:
FutureBuilder<SCoin>(
future: fetchCoinData(2),
builder:
(context, snapshot) {
if (snapshot.hasData) {
return Column(
children: [
Container(
width: 45,
height: 45,
child: Image.network(
snapshot.data!
.coinImage),
),
Text(snapshot
.data!.name),
Text(snapshot.data!
.current_price
.toString())
],
);
} else if (snapshot
.hasError) {
return Text(
\'${snapshot.error}\');
}
// By default, show a loading spinner.
return const CircularProgressIndicator();
}),