Exception Übung für Einsteiger

EnHancEd[]

Aktives Mitglied
Sers,

mal ne kleine Übung für Einsteiger zum Thema Exceptions bzw. selbst welche Erstellen.

Schreiben sie eine Exception die verhindert, dass bei Person zwei beim Methodenaufruf p2.getAge() verhindert, dass das Alter ausgegeben wird:

Soweit der Code:

Java:
public class Person {
	
	private String name;
	private int age;
	private String vorname;
	
	public Person(String name, int age, String vorname){
		this.name=name;
		this.age=age;
		this.vorname= vorname;
		
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}

	public String getVorname() {
		return vorname;
	}

	public void setVorname(String vorname) {
		this.vorname = vorname;
	}
	
	

}

Java:
public class MainClass {
	
	public static void main(String[] args){
		
		Person p1= new Person("Beck2", 19, "Patrick2");
		Person p2 = new Person("hi", 18, "s");
		
		System.out.println(p1.getAge());
        System.out.println(p2.getAge());

	}

}

Nennt sie meinet wegen NoAgeAllowedException.

Greetz & viel Spaß
 
Zuletzt bearbeitet:
Es ist zwar nett von dir, einen Beitrag für die allgemeine Bildung beizutragen, aber das solltest du erstens in einer grammatikalisch nicht ganz so unglücklichen Form tun und zweitens mit etwas mehr praktischem Inhalt. Den Sinn, weshalb man bei einer Person das Alter ausgeben können soll und bei einer anderen nicht., will sich mir einfach nicht offenbaren.
 
Zuletzt bearbeitet:
EnHancEd[];864579 hat gesagt.:
Sers,

mal ne kleine Übung für Einsteiger zum Thema Exceptions bzw. selbst welche Erstellen.

Schreiben sie eine Exception die verhindert, dass bei Person zwei beim Methodenaufruf p2.getAge() verhindert, dass das Alter ausgegeben wird:

Wie bitte?
 
Es geht ja erstmal drum selbst zu testen ob man die Implementierung einer eigenen Exception in Java beherrscht.

Meinetwegen weil sie nichtmehr lebt und somit auch kein aktuelles Alter hat, das ist ja schnuppe.
Die Implementierung ist wichtig.
 
Also die Aufgabenstellung ist schwammig. Es fällt mir nur ein Weg ein, diese Aufgabe zu lösen. Aber wär das dann nicht eher ein Thema für Inner Classes?
Java:
Person p2 =  new Person("hi", 18, "s") {
    @Override
    public int getAge() {
        throw new NoAgeAllowedException();
    }
};
 
Tut mir leid wenn das keine genau gestellte Aufgabe ist, geht mir wie gesagt nur drum dass sich manche Leute die den Thread lesen Gedanken machen und nicht denken, nur weil sie auf throws auto einfügen in Eclipse gehen können, Sie das Thema Exceptions verstehen.
 
Kommt darauf an wie man "zweite Person" hier definiert. Ist genau die im obigen Codestückchen gemeint, dann...

Java:
    public int getAge() {
        if (name.equals("hi")) {
           throw new UnsupportedOperationException("Sag ich nicht!"); 
        }
        return age;
    }

Ist das zweite instantiierte Objekt der Klasse (unabhängig von den Werten) gemeint, könnte man das über einen statischen Counter lösen. Also eine unklare Aufgabenstellung...
 
Zuletzt bearbeitet:
Natürlich kannst du da noch nach getName() oder getVorname() fragen.

Ja hatte mich verlesen, mache grade noch was nebenher mein Fehler 😳

Edit: Schaue grade ob das mit der inneren Klasse auch besser geht, ne if-Abfrage scheint aber der einfachste Weg zu sein. Ich hatte mir eine neue Exception Klasse erstellt in der ich einfach festlege, dass Person zwei kein Alter haben darf. Hat das jemand noch so?
 
Zuletzt bearbeitet:
EnHancEd[];864586 hat gesagt.:
Wo liegt das Problem? testen & Rückmeldung geben.

Mein "wie bitte?" bezieht sich darauf, dass die Aufgabe ein wenig schwammig gestellt ist, und zudem leider ein wenig grammatikalisch falsch.
Naja Landei und faetzminator haben ja schon Beispiele gezeigt.
 
EnHancEd[];864599 hat gesagt.:
Ich hatte mir eine neue Exception Klasse erstellt in der ich einfach festlege, dass Person zwei kein Alter haben darf. Hat das jemand noch so?

Hä, was? Die Exception wird erstellt und überprüft selbst über irgendwelche Parameter, ob sie gethrowt wird oder nicht?
 

Zurück
Oben