Achim Mertens avatar

Java Grundlagen – Block2 (Java Basics) – Tag 5 Exceptions + Bus

achimmertens

Published: 26 Nov 2021 › Updated: 26 Nov 2021Java Grundlagen – Block2 (Java Basics) – Tag 5 Exceptions + Bus

Java Grundlagen – Block2 (Java Basics) – Tag 5 Exceptions + Bus

Fehlerbehandlung (Exception werfen)

Exception ist eine Klasse. Bei einem Fehlerfall erzeugen wir ein Objekt dieser Klasse:

Dadurch wird ein "Throws Exception" beim bei der Methodendeklaration mit angehangen:

Aber der Fehler wird an die Haupt-App weiter-gereicht:

In der Main-App wird der Fehler ("flaeche" ist rot unterkringelt) NICHT noch weiter nach oben gereicht.

Wir erstellen eine eigene Klasse, lassen diese aber im util-Package:

Wir ändern Throwable nach Exception, weil wir keine Error- sondern nur weiche (fachliche) Fehlermeldungen werfen wollen.

Die Klasse wird mit einem String in der Signatur aufgerufen. Diese Message wird beim Aufrufen an die Oberklasse "Exception" weiter gereicht.

Im Kreisrechner sieht es dann so aus:

Jetzt liegt das Fähnchen mit der Radius-Exception aber immer noch auf dem Boden:

Wir fügen die catch-Klause hinzu:

Das kleine e ist das Register im Speicherobjekt in der CPU, es ist das Objekt vom Typ RadiusException.

Wenn man das Programm startet, sieht das Ergebnis so aus:

Wir widerholen das für den Umfang:


Bus

Wir erstellen einen Bus

Usepfeil:

Die Klasse Bus benutzt  für den Fahrer und für die Fahrgäste die Klasse Person

Package Fahrzeuge, Klasse Bus
package de.firma.fahrzeuge;

import de.firma.model.Person;

public class Bus extends Object {
// Eigenschaften
private int busNR;
private int anzahlSitze;
private int anzahlFahrgaeste;
private Person fahrer;
private Person[] fahrgaeste;

//Konstruktoren
public Bus(int busNR, int anzahlSitze) {
    this.busNR = busNR;
    this.anzahlSitze = anzahlSitze;
    this.anzahlFahrgaeste = 0;
    this.fahrer = null;
    this.fahrgaeste = new Person[anzahlSitze];
}

public Bus(int busNR, int anzahlSitze, Person fahrer) {
    this(busNR, anzahlSitze);
    this.fahrer = fahrer;
}

// Getter- und Setter Methoden

public int getBusNR() {
    return busNR;
}

public void setBusNR(int busNR) {
    this.busNR = busNR;
}

public int getAnzahlSitze() {
    return anzahlSitze;
}

public int getAnzahlFahrgaeste() {
    return anzahlFahrgaeste;
}

public Person getFahrer() {
    return fahrer;
}

public void setFahrer(Person fahrer) {
    this.fahrer = fahrer;
}

//Business Methoden
public void einsteigen(Person p) {
    for (int i = 0; i < this.anzahlSitze; i++) {
        if (this.fahrgaeste[i] == null) {
            this.fahrgaeste[i] = p;
            this.anzahlFahrgaeste++;
            break;
        }
    }
}

public void showStatus() {
    System.out.println("Fahrer: " + this.fahrer.getVorname() + " " + this.fahrer.getNachname());
    System.out.println("BusNr: " + this.busNR);
    System.out.println("Anzahl Fahrgäste: " + this.anzahlFahrgaeste);
    System.out.println("------------------------");
    // Mengenschleife
    for (Person p : this.fahrgaeste) {
        if (p != null) {
            System.out.println("Fahrgast: " + p.getVorname() + " " + p.getNachname());
        }
    }
}

}

Im package de.firma erzeugen wir die Klasse Simpsons:

package de.firma;

import de.firma.fahrzeuge.Bus;
import de.firma.model.Arbeiter;
import de.firma.model.Fammgr;
import de.firma.model.Geschlecht;
import de.firma.model.Schueler;

import java.time.LocalDate;

public class Simpsons {
public static void main(String[] args) {
Arbeiter a1 = new Arbeiter("Homer", "Simpson", 35, 120, LocalDate.of(1969, 11, 17),
Geschlecht.MAENNLICH, "AKW Springfield", 3400.0);
Fammgr f1 = new Fammgr("March", "Simpson", 32, 150, LocalDate.of(1973, 07, 17),
Geschlecht.WEIBLICH, "Hausfrau", 7800.0);
Schueler s1 = new Schueler("Bart", "Simpson", 12, 90, LocalDate.of(1995, 03, 05),
Geschlecht.MAENNLICH,"Springfield Elementary Schule",10.0);

    System.out.println("a1 "+ a1.toCSV());
    System.out.println("f1 "+ f1.toCSV());
    System.out.println("s1 "+ s1.toCSV());
    System.out.println("-----------------------");

    Bus b1 = new Bus(15,5, new Arbeiter("Otto","Man",27,110,LocalDate.now(),Geschlecht.MAENNLICH,"öpnv",2000));
    b1.showStatus();
}

}

Wenn wir die Simpsons laufen lassen, sehen wir folgendes Ergebnis:

Wir erstellen noch weitere Exceptions:

Übung01 0301-oop-personen

Bus erweitern:

Einsteigen mit einer anderen Signatur: einsteigen (Person p, in sitznr)

Aussteigen (Person p)

Aussteigen (int sitznr)

——————

Disclaimer

Alles was ich mitschrieb und verstanden habe ist ohne Gewähr.

Besten Dank an unseren

Trainer: Hans-Joachim Blanke blanke@4point.de

Mehr dazu im nächsten Blog von mir.

Gruß, Achim Mertens

Leave Java Grundlagen – Block2 (Java Basics) – Tag 5 Exceptions + Bus to:

Written by

Love also your next but one and create more than you destroy.

Read more #java posts


Best Posts From Achim Mertens

We have not curated any of achimmertens's posts yet. But you can encourage our curation team to review posts by visiting them regularly and by referring other readers. Because we give priority to frequently read content.

More Posts From Achim Mertens