Ich habe gelernt, dass Klassen selbst überprüfen sollen, ob sie ihre Nachrichten ausführen, oder nicht.
Ich habe hier eine Beispielklasse geschrieben, die einen Temperaturwert kapselt.
Wenn man versucht, den Temperaturwert unter 0K zu setzen, wird eine IllegalArumentException geworfen. IllegalArgumentException erbt von RuntimeException und muss daher nicht mittels try-catch abgefangen werden.
Nun interessiert mich eure Meinung:
Sollte ich an der Stelle lieber eine Exception werfen, statt einer IllegalArgumentException, damit Programmierer, die die Temperaturklasse instanziieren, gezwungen sind, eine Fehlerbehandlung zu bauen, damit ihr Programm nicht abrauscht?
lg Stephan
Ich habe hier eine Beispielklasse geschrieben, die einen Temperaturwert kapselt.
Code:
public class Temperatur {
private float celsius;
/**
* Erzeugt ein neues Temperatur Objekt und setzt die Temperatur in °C
* @param celsius Der Wert der Temperatur.
* @throws IllegalArgumentException Wenn der Wert der Temperatur physikalisch nicht möglich ist.
*/
public Temperatur(float celsius) throws IllegalArgumentException {
setValue(celsius);
}
/**
* Setzt die Temperatur in °C
* @param celsius Der neue Wert der Temperatur.
* @throws IllegalArgumentException Wenn der neue Wert der Temperatur physikalisch nicht möglich ist.
*/
public void setValue(float celsius) throws IllegalArgumentException {
if (celsius < -273.15) {
throw new IllegalArgumentException("Es existiert keine Temperatur unter -273.15 °C!");
}
this.celsius = celsius;
}
/**
* Gibt die Temperatur in °C zurück.
*/
public float getValue() {
return celsius;
}
}
Nun interessiert mich eure Meinung:
Sollte ich an der Stelle lieber eine Exception werfen, statt einer IllegalArgumentException, damit Programmierer, die die Temperaturklasse instanziieren, gezwungen sind, eine Fehlerbehandlung zu bauen, damit ihr Programm nicht abrauscht?
lg Stephan