2015-11-04 68 views
0

我正在製作一個應用程序,即在android設備上的SQLite數據庫中存儲一些日期。SimpleDateFormat在編譯之前在AndroidStudio中拋出ParseException

目前,其中大部分按預期工作,除了解析我存儲日期的文本字符串。

private final String ALARMS_COLUMN_TIME = "time"; 

    Calendar cal = Calendar.getInstance(); 
     SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); 
     String dateString = cursor.getString(cursor.getColumnIndex(ALARMS_COLUMN_TIME)); 
     cal.setTime(dateFormat.parse(dateString)); 

的問題是,即使是在編譯之前,它給了我一個,看似語法錯誤,與「未處理的異常java.text.ParseException」。

我使用的是進口的該類有這些:

import android.content.ContentValues; 
    import android.content.Context; 
    import android.database.Cursor; 
    import android.database.sqlite.SQLiteDatabase; 
    import android.database.sqlite.SQLiteOpenHelper; 
    import java.text.SimpleDateFormat; 
    import java.util.ArrayList; 
    import java.util.Calendar; 

我曾與各種語言環境中嘗試爲好,如SimpleDateFormat的構造的一部分,但它並沒有什麼不同。

在編譯之前,這個未處理的異常的原因是什麼?

由於提前,

羅尼

+0

我非常確定/在使用SimpleDateFormat時轉一個日曆對象/很長時間變成可讀文本。但是我試圖改變/' 編輯:給出相同的未處理的異常錯誤 – Ronin

+1

'dateString'的值是什麼? – ThomasThiebaud

+0

dateString的值將是格式與SimpleDateFormat構造函數中使用的格式相同的日期。在編譯之前,android studio會顯示異常 編輯:那麼dateString的實際值是什麼,不應該是IDE將其標記爲異常的原因,因爲它無法查看它可能會在數據庫 – Ronin

回答

2

它不是一個ParseException被拋出 - 問題是,編譯器抱怨,因爲你打電話parse可以拋出ParseException,而你沒有處理它。

ParseExceptionchecked exception,這意味着如果你調用一個聲明拋出它的方法,那麼你要麼需要靠你自己,或者你需要聲明你的方法可能把它扔。 (我們不能從你的代碼中知道你想要做的事情,你可能想要捕捉它,並重新拋出一個未檢查的例外例外。)

+0

所以它不是字符串的格式? –

+0

@Yvette:當這是*編譯時*錯誤時,這怎麼可能相關? –

+0

這是有道理的,我猜,我不知道'檢查異常'等。謝謝,我把它放在試試看! 在幾分鐘內接受答案,當SO會讓我=) – Ronin

相關問題