为什么控制台中未显示错误?

时间:2020-11-04 16:26:13

标签: flutter

我有一个FutureBuilder

FutureBuilder<bool>(
  future: getFuture(),
  builder: (context, snapshot) {
    if (snapshot.hasData) {
      if (snapshot.data) {
        //Data is true and should show something
      }
      //Data is false and should show something
    }
    return CircularProgressIndicator();
  },
);

Future<bool> getFuture() async {
  var myList = [];
  //Intentionally makes an error
  if (myList.first == 'foo') {
    //This should no be fired
  }
  return true;
}

当我在Flutter中运行此设置时,CircularProgressIndicator会愉快地旋转,而没有其他任何反应。控制台中没有显示错误,所以如果我没有故意植入该错误,我将不知道为什么代码无法正常工作。如果getFuture()方法非常复杂,则需要很长时间才能找到错误,而不会在控制台中显示。

有人知道为什么错误不会显示在控制台中吗?有没有办法显示错误?

编辑

感谢一些评论,我现在知道我应该在FutureBuilder的开头添加以下内容

if (snapshot.hasError) {
  print(snapshot.error); //Output: Bad state: No element
  //Handle error
}

现在控制台输出

Bad state: No element

在我现在可以通过控制台获取一些信息之前,该命令对不起,但错误输出没有那么大的帮助。它没有告诉我错误发生在哪里,这使得调试变得更加困难。假设我有一个非常复杂的getFuture()方法,要花很长时间才能找出错误发生的地方。

我不是很幸运,这将是控制台可以给我的最佳输出吗?还是我有办法使控制台的错误输出更加详细?

0 个答案:

没有答案