Flutter error catch e.message 不工作

标签 flutter dart flutter-getx

void createUser(String email, String password) async {
    try {
      await _auth
          .createUserWithEmailAndPassword(email: email, password: password)
          .then((value) => Get.offAll(Home()));
    } catch (e) {
      Get.snackbar("Error while creating account", e.message, //Error on e.message
          snackPosition: SnackPosition.BOTTOM);
    }
  }

Error: The getter 'message' isn't defined for the class 'Object'. Try correcting the name to the name of an existing getter, or defining a getter or field named 'message'.

知道为什么它不起作用吗?

最佳答案

原因是您捕获的 e 对象没有 message 属性。您可以使用 print(e.runtimeType) 查看它是哪种类型。如果你想捕获某种特定类型的异常,你应该尝试:

try {
   // 
} on SomeClass catch (e) {
    print(e.message)
} catch (e) {
   // 
}

关于Flutter error catch e.message 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68594942/

相关文章:

flutter - 如何在 Flutter 中让任务在后台运行

dart - 小部件不会在屏幕底部对齐

firebase - 即使文档不存在,我如何在 flutter firestore 中使用 .updateData() 而不是 .setData()

flutter - 有什么方法可以使一个DateTimePicker flutter 地获得年,月,日和一个小时吗?

android - Flutter 上的小部件的 onResume() 和 onPause()

Flutter:如何使用 Getx Obx 更新标记在谷歌地图中的位置?

Flutter 使用 Getx 关闭选定的对话框

flutter - 使用 GetX 在屏幕之间传递数据的最佳形式是什么?

flutter - 如何从 flutter 中的时间戳值中仅获取日期和时间值

android - Flutter - 如何解决 iOS 和 Android 之间的差异?