0

私のコードでは、try-catch で囲まれている必要があります。実行しましたが、エラーが発生し続けます

Caused by: java.lang.NullPointerException at java.text.SimpleDateFormat.parse(SimpleDateFormat.java:1001) at java.text.DateFormat.parse(DateFormat.java:624)

これは私のコードです:

SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy hh:mm");
try{
    Date date = sdf.parse(dataUltima);
    dataUltima = new SimpleDateFormat("dd/MM/yyyy HH:mm").format(date);

} catch (ParseException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}
4

4 に答える 4

4

コードは catch のみParseExceptionであるため、NullPointerException は catch 句によって処理されません。私の推測ではsdf、このコードが実行されると null になるか、またはdataUltimaparse メソッドに渡されると null になります ( parse()null 引数にどのように応答するか正確には覚えていません)。

これはいくつかの方法で解決できます。try ブロックを実行する前に、例外の原因となっている変数が null かどうかを確認するか、NullPointerExceptiontry/catch に catch を追加するか、ParseExceptionブロックをより一般的な例外 ( などException) にキャッチして、両方のケースを処理します (個人的にはお勧めしませんが)。それ)。

于 2013-07-17T13:55:23.637 に答える
0

これを実行しようとすると、 dataUltima はおそらく nullDate date = sdf.parse(dataUltima);であり、 catch のみが取得されParseExceptionます。すべてのエラーをキャッチする場合は、 に変更ParseExceptionExceptionます。

于 2013-07-17T13:55:48.253 に答える
0
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy hh:mm");
try{
    Date date = sdf.parse(dataUltima);
    dataUltima = new SimpleDateFormat("dd/MM/yyyy HH:mm").format(date);

} catch (Exception e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}

行 624 でヌル ポインターの理由を探し、そのクラスで dataUltima をどこかで参照しましたか..??

于 2013-07-17T14:02:00.660 に答える
0

これは NullPointerException です。コードは ParseException のみをキャッチします。日付変数を確認してください。nullだと思います。あなたはそのようなことをすることでこの例外をキャッチすることができます

try{
    Date date = sdf.parse(dataUltima);
    dataUltima = new SimpleDateFormat("dd/MM/yyyy HH:mm").format(date);
} catch (ParseException e) {
         // TODO Auto-generated catch block
   e.printStackTrace();
} catch (NullPointerException e) {
        // TODO: handle exception

}
于 2013-07-17T14:01:30.600 に答える