Flutter-未处理的异常

时间:2020-08-19 14:05:08

标签: flutter dart sharedpreferences

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

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

当首选项为空时,应该在if行触发Unhandled异常。但是,在运行调试时,应用程序不会崩溃,并且执行继续到if语句中。 当我在调试控制台中进行评估时,确实会引发异常,但是如果我没有检查过... p

那为什么不停止执行并记录异常呢?

谢谢

1 个答案:

答案 0 :(得分:0)

执行没有停止

由于您的状况。如果没有数据,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