[英]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.