Hi, also hier einmal der Code:
Meine Klasse Buch:
Meine Exeption:
Meine Frage ist jetzt warum ich bei meinen Setter aufrufen im Konstruktor nicht die Exeption auffangen muss (mit try catch). Müsste ich das erst dann machen , wenn ich den Konstruktor aufrufe?
Gruß
Meine Klasse Buch:
Java:
public class Buch {
private boolean ausgeliehen = false;
private String autor;
private String titel;
private LocalDate rueckgabeDatum = null;
//Konstruktor
public Buch(String autor, String titel) {
setTitel(autor);
setAutor(autor);
}
//getter
public String getAutor() {
return autor;
}
public String getTitel() {
return titel;
}
public boolean isAusgeliehen(){
return ausgeliehen;
}
public LocalDate getRueckgabedatum() throws IllegaloanExeption{
if(ausgeliehen){
return rueckgabeDatum;
}else{
throw new IllegaloanExeption("Buch nicht ausgeliehen!");
}
}
//setter
private void setAutor(String autor) throws IllegalArgumentException{
if(checkAutor(autor)){
this.autor = autor;
}
throw new IllegalArgumentException("Auto hat ein falsches Format");
}
private void setTitel(String titel) throws IllegalArgumentException{
if(checkTitel(titel)){
this.titel = titel;
}
throw new IllegalArgumentException("Titel hat ein falsches Format");
}
//checker
private boolean checkTitel(String titel){
return titel.length() > 0;
}
private boolean checkAutor(String autor){
return autor.length() > 0;
}
//methoden
public void ausleihen() throws IllegaloanExeption{
if(!ausgeliehen){
ausgeliehen = true;
rueckgabeDatum.now().plusDays(14);
}else{
throw new IllegaloanExeption("Objekt ist bereits ausgeliehen");
}
}
public void zurueckgeben() throws IllegaloanExeption{
if(ausgeliehen){
ausgeliehen = false;
rueckgabeDatum = null;
}else{
throw new IllegaloanExeption("Objekt ist noch nicht ausgeliehen");
}
}
@Override
public boolean equals(Object a){
if(a == null){
return false;
}
if(!(a.getClass().equals(this.getClass()))){
return false;
}
Buch buch = (Buch) a;
return (buch.getTitel() == this.getTitel());
}
@Override
public String toString(){
return autor + ":" + titel;
}
}
Code:
public class IllegaloanExeption extends Exception{
public IllegaloanExeption(String message){
super(message);
}
}
Meine Frage ist jetzt warum ich bei meinen Setter aufrufen im Konstruktor nicht die Exeption auffangen muss (mit try catch). Müsste ich das erst dann machen , wenn ich den Konstruktor aufrufe?
Gruß