次のコードがあります。
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
TimeZone tz2 = TimeZone.getTimeZone("GMT");
dateFormat.setTimeZone(tz2);
String aDate = "2012-05-02 23:59:59";
for(int i=0 ; i<1000; i++){
dateFormat.setLenient(false);
ParsePosition p = new ParsePosition(0);
Date date = dateFormat.parse(aDate, p);
java.sql.Date sqlDate = null;
if (p.getIndex() != aDate.length())
throw new RuntimeException("just a test");
}
何度もテストした後、それは非常に奇妙でした。基本的に、完全に終了することはなく、非常にランダムに例外が発生しました。
コードは正しいはずですが、おそらくi
500 またはi
799 またはi
988 のときに例外が発生しました (ここでいくつか例を挙げてください。i
= 0 のときに発生しなかったことを意味します。実際にはいくつかの円が終了しています)。date = dateFormat.parse(aDate, p);
行Date または行のいずれかで例外がスローされる可能性がありますthrow new RuntimeException("just a test");
。
誰もが私に何が悪いのかアドバイスできますか?