I Javaコードの以下のビットがあります避けネストされたのtry-catchブロック
SimpleDateFormat df = new SimpleDateFormat("dd/MM/yyyy mm:HH");
Date date;
try {
date = df.parse(userString);
} catch (ParseException e) {
date = df.parse("07/12/2016 01:00");
LOGGER.error("Could not parse date, reverting to default");
}
そうで、私がやろうとしていることはそれが失敗した場合に、日付などのユーザー入力を解析することですそれをデフォルトの日付に置き換えます。
しかし、2番目のdf.parse()
には、それ自身のtry-catchが必要ですが、それは確かに私が知っている価値です。それは第二のparse
が働かないことには意味をなさないが、もし本当にそうしなければ、私はこれ以上何もしない。世界が終わったのでプログラムを終了するかもしれない。 :)
try-catch
ブロックの必要性を避ける方法はありますか?
downvoters、私は訂正またはそれから何かを学ぶことができるように、この方法の問題点をコメントしてください – developer
私は投票した人でした。さて、まずisErrorチェックを行う必要はありません。好き。 'try {date = df.parse(defaultString); date = df.parse(userString); } '' defaultString'は解析に失敗しますので、 'userString'が失敗した場合でもデフォルトの日付を持ち、' isError'を扱う必要はありません。あなたの方法が間違っているとは言いませんが、特に多くのことをするには、例外をスローしない 'SimpleDateFormat.parse(String text、ParsePosition pos)'メソッドがあります。 – Onur
パフォーマンスについての質問であれば、とにかく、あなたの意見を得ました。 – developer