Hi,
bisher habe ich überwiegend Websites programmiert mit XHTML, CSS, JS und PHP mit MySQL. Um nun auch in die Anwendungsentwicklung einzusteigen habe ich mich für die Sprache Java entschieden. Neu für mich ist auch OOP.
Bei meiner Suche im Internet bin ich dabei auf dieses Forum gestoßen. Hier auch direkt meine erste Frage: ^^
Zum Üben habe ich eine Klasse "Fraction" geschrieben, die einen mathematischen Bruch repräsentiert. Mit den Methoden lassen sich dann die üblichen Rechenoperationen durchführen. Das ganze funktioniert soweit recht gut. Jetzt bin ich aber beim Thema Exceptions angekommen. Ein Fehler oder eine Ausnahme liegt ja in meiner Klasse beispielsweise dann vor, wenn jemand ein Objekt mit Nenner 0 erzeugt. [z.B.: Fraction f = new Fraction(5, 0); erster Parameter ist der Zähler, zweiter der Nenner] Das ist ja ungültig da der Nenner nie 0 sein darf -> Division durch 0.
Bisher habe ich im Konstruktor folgendes stehen:
Die Idee so einen Fehler abzufangen stammt noch aus der Zeit in der ich funktional programmiert habe. Bei Java ist es doch eher die feine Art eine Exception zu werfen, oder irre ich?
Habe mir überlegt es so zu machen:
Jetzt müsste ich nur noch wissen was für eine Exception ich da am besten verwende. Eine RuntimeException wahrscheinlich, da diese nicht zwingend behandelt werden muss aber welche Unterklasse passt dann am besten? Eine IllegalArgumentException oder eine ArithmeticException?? Ich bin derzeit etwas ratlos wie ich das alles am beste realisiere mit den Fehlern. (Danach werden für die Klasse noch zwei andere Ausnahmen ausgelöst. Einmal wenn null übergeben wird - NullPointerException?! und einmal wenn durch einen Bruch mit Zähler = 0 dividiert wird - also Division durch 0 - ArithmeticException?!)
Kann mir jemand helfen, also erklären ob die Idee und die Umsetzung so vernünftig ist oder wie man das richtig macht?
Vielen Dank!
VG
bisher habe ich überwiegend Websites programmiert mit XHTML, CSS, JS und PHP mit MySQL. Um nun auch in die Anwendungsentwicklung einzusteigen habe ich mich für die Sprache Java entschieden. Neu für mich ist auch OOP.
Bei meiner Suche im Internet bin ich dabei auf dieses Forum gestoßen. Hier auch direkt meine erste Frage: ^^
Zum Üben habe ich eine Klasse "Fraction" geschrieben, die einen mathematischen Bruch repräsentiert. Mit den Methoden lassen sich dann die üblichen Rechenoperationen durchführen. Das ganze funktioniert soweit recht gut. Jetzt bin ich aber beim Thema Exceptions angekommen. Ein Fehler oder eine Ausnahme liegt ja in meiner Klasse beispielsweise dann vor, wenn jemand ein Objekt mit Nenner 0 erzeugt. [z.B.: Fraction f = new Fraction(5, 0); erster Parameter ist der Zähler, zweiter der Nenner] Das ist ja ungültig da der Nenner nie 0 sein darf -> Division durch 0.
Bisher habe ich im Konstruktor folgendes stehen:
Java:
if(denominator != 0) {
// Werte initialisieren usw.
} else {
// TODO: durch Exception ersetzen!!
System.err.println("Nenner darf nicht 0 sein! Programm beendet!");
System.exit(1);
}
Habe mir überlegt es so zu machen:
Java:
if(denominator == 0) {
throw new XXXException("Nenner darf nicht 0 sein!");
}
Kann mir jemand helfen, also erklären ob die Idee und die Umsetzung so vernünftig ist oder wie man das richtig macht?
Vielen Dank!
VG
Zuletzt bearbeitet: