Ich habe ein Problem mit dem Werfen und Fangen von Exceptions.
Musste für eine Aufgabe eine eigene Exception schreiben und diese Werfen und Fangen.
Ich habe das Problem, dass ich nicht weiß ob die Exception, so wie sie von mir geschrieben wurde funktioniert.
Ich beschreibe es am besten mal mit Stücken vom Code:
Meine Exception:
Und hier der Konstruktor einer Klasse, wenn die größen mit negativen Werten initialisiert werden soll die Exception geworfen und gefangen werden.
Bei 1* funktioniert es irgendwie nicht, dass ich die Exception mit e.getMessage ausgeben kann, das Objekt wird einfach mit den Werten 0.0, 0.0 initialisiert..
Wenn ich statt getMessage() printStackTrace schreibe, wird die Exception wie gewünscht gefangen und ausgegeben allerdings wird das Objekt trotzdem mit
den Werten 0.0, 0.0 initialisiert..
Aber eigentlich hätte ich es auch lieber wenn nur der Text:
Der gewaehlte Radius: ' "+ radius + "' und die Hoehe: ' " + hoehe + "' muessen groesser als 0 sein!!"
ausgegeben wird statt diese restlichen Errorzeilen von printStackTrace.
Ich habe das mit den Exceptions noch nicht ganz verstanden obwohl ichs versuche, aber irgendwie wills mir nicht gelingen..
Vielen Danke schonmal für die Hilfe,
Gruß Tomi
Musste für eine Aufgabe eine eigene Exception schreiben und diese Werfen und Fangen.
Ich habe das Problem, dass ich nicht weiß ob die Exception, so wie sie von mir geschrieben wurde funktioniert.
Ich beschreibe es am besten mal mit Stücken vom Code:
Meine Exception:
Java:
public class InvalidSizeException extends Exception
{
public InvalidSizeException(String message)
{
super(message);
}
}
Und hier der Konstruktor einer Klasse, wenn die größen mit negativen Werten initialisiert werden soll die Exception geworfen und gefangen werden.
Java:
public class Zylinder extends Baustein
{
private double radius;
private double hoehe;
/**
* Konstruktor für Objekte der Klasse Zylinder
*/
public Zylinder(String farbe, double radius, double hoehe) throws InvalidSizeException
{
super(farbe);
try {
if((radius <= 0) || (hoehe <= 0)) {
throw new InvalidSizeException("Der gewaehlte Radius: '"
+ radius + "' und die Hoehe: '" + hoehe + "' muessen groesser als 0 sein!!");
}
else {
this.radius = radius;
this.hoehe = hoehe;
}
}
catch (InvalidSizeException e) {
e.getMessage(); //1*
}
}
Bei 1* funktioniert es irgendwie nicht, dass ich die Exception mit e.getMessage ausgeben kann, das Objekt wird einfach mit den Werten 0.0, 0.0 initialisiert..
Wenn ich statt getMessage() printStackTrace schreibe, wird die Exception wie gewünscht gefangen und ausgegeben allerdings wird das Objekt trotzdem mit
den Werten 0.0, 0.0 initialisiert..
Aber eigentlich hätte ich es auch lieber wenn nur der Text:
Der gewaehlte Radius: ' "+ radius + "' und die Hoehe: ' " + hoehe + "' muessen groesser als 0 sein!!"
ausgegeben wird statt diese restlichen Errorzeilen von printStackTrace.
Ich habe das mit den Exceptions noch nicht ganz verstanden obwohl ichs versuche, aber irgendwie wills mir nicht gelingen..
Vielen Danke schonmal für die Hilfe,
Gruß Tomi