Hallo zusammen,
ich versteh zwar das Prinzip hinter Exceptions aber wie genau benutz ich sie für mich selber? Ich hab hier ein Programausschnitt, der auf eine Benutzereingabe wartet. (Hier am Bsp: add <Busnummer >;< Start >;< Ziel >;< Preis >;<Währung > ). Die <> sind zu ignorieren und sind nur Platzhalter, aber jetzt 2 Fragen:
1. Kann man irgendwie mit util oder util.regex überprüfen, ob meine Benutzereingabe genau dem Pattern von oben add überprüft und add nur ausführt, wenn es passt?
2. Wie kann ich eine IllegalArgumentException werfen und catchen? Mein Porgramm unten funktiniert, wenn man alles richtig eingibt, aber bei falschen Eingaben schaff ich es net die Fehler zu catchen. Muss ich die IllegalArgumentException selbst schreiben oder überschreiben (wenn ja wie?) und wie genau wend ich das try catch Prinzip an und wer wirft (throw) die Exception?
(Anmerkung: bitte kein gotta catch them all prinzip, sondern nur dort, wo ich es brauche. Ist es sinvoller die Exceptions in meiner Main zu packen oder in der Klasse, wo ich die entsprechenden Methoden habe ?
ich versteh zwar das Prinzip hinter Exceptions aber wie genau benutz ich sie für mich selber? Ich hab hier ein Programausschnitt, der auf eine Benutzereingabe wartet. (Hier am Bsp: add <Busnummer >;< Start >;< Ziel >;< Preis >;<Währung > ). Die <> sind zu ignorieren und sind nur Platzhalter, aber jetzt 2 Fragen:
1. Kann man irgendwie mit util oder util.regex überprüfen, ob meine Benutzereingabe genau dem Pattern von oben add überprüft und add nur ausführt, wenn es passt?
2. Wie kann ich eine IllegalArgumentException werfen und catchen? Mein Porgramm unten funktiniert, wenn man alles richtig eingibt, aber bei falschen Eingaben schaff ich es net die Fehler zu catchen. Muss ich die IllegalArgumentException selbst schreiben oder überschreiben (wenn ja wie?) und wie genau wend ich das try catch Prinzip an und wer wirft (throw) die Exception?
(Anmerkung: bitte kein gotta catch them all prinzip, sondern nur dort, wo ich es brauche. Ist es sinvoller die Exceptions in meiner Main zu packen oder in der Klasse, wo ich die entsprechenden Methoden habe ?
Java:
String[] userinputsplitted = Terminal.readLine().split("[ |;]");
String userinput = userinputsplitted[0];
if (userinput.contentEquals("add")) {
String userinput2 = userinputsplitted[1];
int number = Integer.parseInt(userinput2);
String userinput3 = userinputsplitted[2];
String userinput4 = userinputsplitted[3];
String userinput5 = userinputsplitted[4];
double price = Double.parseDouble(userinput5);
String userinput6 = userinputsplitted[5];
Currency currency = Currency.valueOf(userinput6);
bs.add(number, userinput3, userinput4, price, currency);