如何解决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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。