0

私はこのコードを持っています:

aktiv_date = dateaktiv.getText().toString();
SimpleDateFormat formatter = new SimpleDateFormat("dd.MM.yyyy");
try {
     aktiv_dat = formatter.parse(aktiv_date);
    } catch (java.text.ParseException e) {
     e.printStackTrace();
    }

12101989 などのような番号を指定すると、dd.MM.yyyy の形式ではないため、プログラムがクラッシュします。

 aktiv_dat = formatter.parse(aktiv_date);

クラッシュしないようにするにはどうすればよいですか?

4

2 に答える 2

3

問題は、 をキャッチしParseException、例外をダンプしてから、何も問題がなかったかのように続行していることだと思います。

aktiv_datが宣言されている場所を示していませんがnull、解析が失敗した場合の値がNullPointerException. スタック トレースを出力して続行することは、例外を処理する正しい方法ではありません。無効なデータに直面したときにプログラムをどのように動作させたいかを考える必要があります。デフォルトの日付を使用するか、その操作だけを放棄するかなど...

于 2012-10-19T06:43:00.510 に答える
0

次のように編集してみてください。

SimpleDateFormatフォーマッタ=newSimpleDateFormat( "ddMMyyyy");

于 2012-10-19T06:46:41.047 に答える