ParseException wird nicht geworfen?!



  • package exceptionTest;
    
    import java.text.DateFormat;
    import java.text.ParseException;
    import java.util.Date;
    
    public class DatumEingabe
    {
        /* Hier wird die Exception ParseException an den Aufrufer übergeben */
        public static Date parseDate(String datum) throws ParseException
        {
    	DateFormat df = DateFormat.getDateInstance();
    	/* Wirft ParseException, falls kein gültiges Datum übergeben wurde */
    	Date d = df.parse(datum);
    	return d;
        }
    
        public static void main(String[] args)
        {
    	String datum = "32.12.2000";
    	try
    	{
    	    /* Hier könnte eine Exception geworfen werden */
    	    System.out.println(parseDate(datum));
    	}
    	catch (ParseException e)
    	{
    	    // Fehlerbehandlung
    	    System.out.println("Exception: " + e);
    	}
        }
    }
    

    Der Code ist von http://www.java-tutorial.org/ (leicht modifiziert). Der String sollte so nicht geparsed werden können, da er nicht dem korrekten Format entspricht (es gibt keinen 32. Dez) und trotzdem zeigt mir die Konsole ein Datum an. Meine Vermutung: df.parse(datum) wirft gar keine Exception, aber wieso nicht?

    Was hab ich falsch gemacht? 😕

    Danke schonmal

    Edit: er rechnet automatisch auf den 1. Januar um, deswegen braucht er keine Exception. Trotzdem: Wie kann ich ihn nun dazu zwingen, doch eine zu werfen?





  • javadoof schrieb:

    http://docs.oracle.com/javase/7/docs/api/java/text/DateFormat.html#setLenient(boolean)
    Hilft es, da false reinzutun?

    Danke für die Antwort, gute Idee. Nachdem ich das Programm heute gestartet habe, hat es den Error (ohne das benutzen der Methode, die du mir vorgeschlagen hast), ganz normal geklappt. Ich nehme an, dass es ein Eclipse-Fehler ist. Nicht das erste Mal, das ich so ein Problem mit Eclipse habe...


Anmelden zum Antworten