Hi an allen,
wenn ich bei eine instanz fehler mache wird nur fehler geliefert. ich meine zum beispiel wenn ich schreibe Produkt p1 = new Produkt("Brot", 1.45);
ohne dass ich toString() methode aufrufe für p1 wird nur fehler geliefert
Meine Frage ist folgede, wie soll ich behandeln dass bei falsche Instanzen fehler geliefert wird und andere Instanzen die richtig sind werden ausgegeben?
Danke vielmals
Lg nata
Java:
public class Produkt {
private String name;
private double preis;
public Produkt(String name, double preis) throws Exception{
setName(name);
setPreis(preis);
}
public void setName(String name)throws Exception {
if(name == null || name.length() == 0){
throw new Exception("name darf weder null noch die länge 0 habe");
}
for(int i = 0; i < name.length(); i++){
char c = name.charAt(i);
if(!Character.isUpperCase(c) && !Character.isDigit(c) ){
throw new Exception("Produktname darf nur Großbuchstaben und Ziffern enthalten");
}
}
this.name = name;
}
public void setPreis(double preis) throws Exception{
if(preis <= 0){
throw new Exception("Preis muss positiv sein");
}
this.preis = preis;
}
public double berechnePreis(){
return preis;
}
public String getName(){
return name;
}
public String toString(){
return name + " kostet " + preis+ " Euro";
}
}
Java:
public class ProduktPackung extends Produkt{
private int stueckzahl;
public ProduktPackung(String name, double preis, int stueckzahl) throws Exception {
super(name, preis);
if(stueckzahl <=0){
throw new Exception("Stückanzahl muss positiv sein");
}
this.stueckzahl = stueckzahl;
}
public double berechnePreis(){
return super.berechnePreis() * stueckzahl;
}
public String toString(){
return super.getName()+ " kostet " + berechnePreis()+ " Euro" ;
}
}
Java:
public class ProduktMain {
public static void main(String args[]){
try {
Produkt p1 = new Produkt("BROT", 1.45);
Produkt p2 = new Produkt("MILCH", 0.89);
Produkt p3 = new Produkt("ROEMERQUELLE" , 0.49);
ProduktPackung pP1 = new ProduktPackung("ROEMERQUELLE",0.49, 6);
System.out.println(p1.toString());
System.out.println(p2.toString());
System.out.println(p3.toString());
System.out.println(pP1.toString());
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
}
ohne dass ich toString() methode aufrufe für p1 wird nur fehler geliefert
Meine Frage ist folgede, wie soll ich behandeln dass bei falsche Instanzen fehler geliefert wird und andere Instanzen die richtig sind werden ausgegeben?
Danke vielmals
Lg nata