簡體   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