Flutter-未处理的异常

问题描述

我正在学习颤动,因此我需要有关我正在经历的怪异行为的帮助/信息。

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

当首选项为空时,应该在if行触发Unhandled异常。但是,在运行调试时,应用程序不会崩溃,并且执行继续到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;
    }

article很好地说明了SharedPreferences

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...