Java Datum Ausnahmebehandlung try catch
Gibt es irgendeine Art von Ausnahme in Java zu fangen, ein ungültiges Datum-Objekt? Ich bin versucht, es zu benutzen in der folgenden Methode, aber ich weiß nicht, welche Art von Ausnahme zu suchen. Ist es eine ParseException.
public boolean setDate(Date date) {
this.date = date;
return true;
}
Du musst angemeldet sein, um einen Kommentar abzugeben.
In der Methode, die Sie bereitstellen, gibt es keine Möglichkeit zu fangen eine Ausnahme, weil niemand wird, ausgelöst durch die einfache Zuweisung. Alles, was Sie tun können, ist vielleicht die unten ändern:
Aber auch das ist nicht anmutig. Möchten Sie vielleicht etwas zu tun mit
this.date
oder werfen eine Ausnahme, wenn das ist das gewünschte Verhalten.Was Sie wirklich wollen, entweder:
ParseException
- ausgelöst durch eineDateFormat
Objekt, wenn es versucht zuparse()
, was passieren würde, bevor Sie Ihre set-MethodeIllegalArgumentException
- ausgelöst durch eineSimpleDateFormat
Konstruktor, wieder würde es passieren, bevor Sie Ihre set-Methode. Zeigt Sie eine ungültige format-string.Würden Sie wollen, zu fangen, einer von denen (wahrscheinlich #1). Aber es muss passieren vor Ihre Methode nennen. Sobald Sie eine
Date
Objekt, es ist entwedernull
oder gültig sind.Könnte dies nicht im Zusammenhang mit der ursprünglichen Frage. Aber man muss bemerken, den Namen der Methode, die
setDate()
. Glaubst du, dass es klingt wie es wird, wieder zurückgeben? Oder wenn Sie es können, dann tun Sie denken, es ist eine gute Idee, um wieder eineboolean
es? IMO, so etwas wie dies tun,In dieser Methode gibt es keine Notwendigkeit zur Sorge über eine Ausnahme. Das Datum ist bereits erstellt, durch die Zeit, die Sie in diese Methode. Wenn Sie analysieren ein Datum, wäre es getan haben, außerhalb dieser code. Das beste, was Sie tun können, ist sicherzustellen, dass das Datum nicht null ist.
Es hängt davon ab, was du damit meinst ein ungültiges Datum. Meinten Sie geben uns eine Methode, die Signatur, die eher so aussah?
Anders, als die anderen angegeben, der einfache Akt der Zuweisung einer Java-date-Objekt zu einem Feld sollte nicht als außergewöhnlich, da Sie entweder eine Instanz der Date schon, oder null.
Wenn Sie nur versuchen, eine Zeichenfolge zu analysieren, in eine java.util.Datum, Blick auf DateFormat, FastDateFormat (apache, thread-sichere), oder Joda Time.