繁体   English   中英

Flutter - 未处理的异常

[英]Flutter - Unhandled exception

我正在学习 flutter,我需要有关我遇到的奇怪行为的帮助/信息。

Future<SharedPreferences> _preferences = SharedPreferences.getInstance();
final SharedPreferences preferences = await _preferences;
if (preferences.getString(USER_TOKEN_PREFERENCE) != '') {
  yield AuthentificationStatus.passed;
}

当首选项为空时,它应该在 if 行触发未处理的异常。 然而,在运行调试中,应用程序没有崩溃,并且继续执行到 if 语句。 当我在调试控制台中进行评估时,确实会触发一个异常,但如果我没有检查的话我不会注意到它……p

那么为什么执行没有停止并且记录了异常?

谢谢

执行没有停止

因为你的情况。 如果没有数据preferences.getString(USER_TOKEN_PREFERENCE)将返回null并且您检查条件中的空字符串。 你应该检查

if (preferences.containsKey(USER_TOKEN_PREFERENCE) && preferences.getString(USER_TOKEN_PREFERENCE) != '') {
  yield AuthentificationStatus.passed;
}

要么,

if (preferences.getString(USER_TOKEN_PREFERENCE) != null && preferences.getString(USER_TOKEN_PREFERENCE) != '') {
      yield AuthentificationStatus.passed;
    }

This article有一个很好的SharedPreferences示例

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM