wollt mal fragen wie ich überprüfe ob in einer Methode eine Exception geworfen wird, wenn ja soll das Programm keine Berechnungen machen wenn keine Exception dann weitermachen.
Bei Fehlerbehandlung schreibst du halt dann den Code rein, der im Fehlerfall ausgeführt werden soll. Java sorgt dann dafür, das die Fehlerbehandlung ausgeführt wird, sobald in der aufgerufenen Methode eine Exception vom gefangenen Typ geworfen wird.
Schau dazu am besten nochmal in die Insel, wenn mich nicht alles täuscht, gibt es da ein komplettes Kapitel zur Fehlerbehandlung.
umwandeln muss diese Information im Rückgabewert angeben,
ein int ist dafür eher schlecht,
wenn du aber eine höhere Klasse zurückgibst, die einen boolean für 'Exception aufgetreten' enthält, dürfte klar sein, was passiert ist
also, ich würde dafür keine eigene Klasse schreiben. Höchstens eine eigene Exception-Klasse. Was spricht dagegen, das die Klasse umwandeln eine Exception wirft, wenn ein Fehler aufgetreten ist? Dann könnte man umwandeln() und die Berechnungsmethode in den Try-Block schreiben und bräuchte keine weitere Klasse, weil die nächste Zeile im try-Block nur aufgerufen wird, wenn die Methode umwandeln() erfolgreich abgearbeitet wurde. Anderfalls wird der catch-Block durchlaufen. Das ist der Standardweg für Fehlerbehandlung in Java und man sollte so selten wie möglich die Standardpfade verlassen und hier ist es meiner Meinung nach gänzlich unnötig.
Verwende die Fehlerbehandlung so, wie sie in Java gedacht ist, nämlich mit Exceptions. Fehler als int- oder boolean-Werte einer aufrufenden Methode bekannt zu geben ist ganz schlechter Stil und hat mit OO nicht viel zu tun.
b) Besser in dem Fall ist es natürlich auf die Methode umwandeln() komplett zu verzichten - sie macht keinen Sinn da sie gegenüber Integer.parseInt() keinen Mehrwert bietet. Falls dort noch andere Dinge erledigt werden sollen wäre Möglichkeit a) allerdings zu verwenden.
Das Problem ist es ich habe 20 Labels die ich einlese in Variablen, deswegen hab ich auch eine Methode geschrieben, um das try catch 20 mal zu verhindern.
Du kannst die 20 Label innerhalb eines try-catch-Blocks einlesen, dazu brauchst du keine 20 try-catch Statements:
Code:
try {
int zahl1 = Integer.parseInt(...);
int zahl2 = Integer.parseInt(...);
// usw.
}
catch(NumberFormatException ex) {
// Fehlerbehandlung
}
Und selbst wenn an 20 verschiedenen Stellen das try-catch notwendig ist; sehe es nicht als "Behinderung" an, die "verhindert" werden muss, sondern als gut durchdachtes Prinzip um die Qualität deiner Software zu verbessern, wenn es richtig angewendet wird.