Java Exceptions Beispiel & Tutorial / Bier trinken

Posted: Januar 22nd, 2009 | Filed under: Programmieren, Tutorials | Tags: , , , , , , | No Comments »

Da Exceptions ein unverzichtbares Thema bezüglich Fehlererkennung und Fehlerbehandlung in Java ist zeige ich euch heute ein kleine und lustige Beispiel-Applikation.

Die Mannschaft eines Fussballvereins betritt nach dem Training die hauseigene Vereinskneipe. Alle sind in Feierstimmung und bestellen sich reichlich Bier :D. Der Wirt schenkt fleißig aus und den Fussballern schmeckts. Doch Plötzlich trifft ein schreckliges Ereignis ein. Das 10 Liter Bierfass ist leer. 🙁

Was das ganze jetzt mit Java zu tun hat? Im Prinzip nichteinmal so wenig. Desswegen habe ich diesen Anwendungsfall auch genommen um euch Java Exceptions zu veranschaulichen.

Beim Ausführen eines Java-Programms können Fehler auftreten, die zum Übersetzungszeitpunkt des Quelltextes nicht absehbar waren. Solche Fehler werden „Laufzeitfehler“ genannt. Tritt ein Laufzeitfehler auf, liegt eine Ausnahmesituation vor, es wird daher eine Ausnahme (Exception) ausgelöst (entweder durch die Java-Laufzeitumgebung oder durch eine entsprechende Codierung des Programmieres). Exceptions sind durch eine Klassenhierarchie in Java abgebildet.

Zuerst erstellen wir uns eine Klasse Bier die durch die Methode trinken den Biervorrat (double vorratInLiter) je nach Menge dezimiert. Reicht der Vorrat jedoch nicht aus soll eine Fehlermeldung, also eine Exception, geworfen werden. Anfangs sollen 5 Liter Bier im Fass vorhanden sein.

Zusätzlich erstellen wir uns eine eigene Exception Klasse mit dem Namen BierProbleme. Diese Exception Klasse erzeugt lediglich die Fehlermeldung „Bier ist leer! Bitte neues Kaufen!!! Rothaus schmeckt am Besten!„.

Desswegen müssen wir nun wenn wir die Methode „trinken“ aufrufen eine eventuell auftretende Fehlermeldung durch eine Try Catch Block abfangen.

Hier der Quellcode des Programmes. Ich habe versucht es so einfach wie möglich zu halten. 😀

Bier.java

package Kneipe;

public class Bier {
     
     double vorratInLiter = 5;     
     
     public Bier(){

     }
     
     public void trinken(double literthrows BierProbleme{
          if (vorratInLiter >= liter){
               // Alles Prima, Bier wird getrunken und vom Vorrat abgezogen
               vorratInLiter = vorratInLiter - liter;
               System.out.println("Es wurden " + liter + " getrunken.");
               System.out.println("Neuer Vorrat: " + vorratInLiter);
          }else{
               // Biervorrat reicht nicht mehr aus, Fehlermeldung wird geworfen
               throw new BierProbleme();
          }
     }
     
     public static void main(String[] args) {
          Bier bier = new Bier();
          try {
               // Fussballmannschaft betritt die Kneipe und trinkt bier
               bier.trinken(0.33);
               bier.trinken(0.5);
               bier.trinken(0.5);
               bier.trinken(0.5);
               bier.trinken(0.33);
               bier.trinken(0.2);
               bier.trinken(1);
               bier.trinken(0.5);
               bier.trinken(0.5);
               bier.trinken(0.33);
               bier.trinken(0.33);
               bier.trinken(0.2);          
               
          
          // Fehler wird abgefangen
          catch (BierProbleme e) {
               e.printStackTrace();
               // Es wird neues Bier nachgekauft! (10 Liter)
               bier.vorratInLiter = bier.vorratInLiter + 10;
               System.out.println();
               System.out.println("Es wurde Bier eingekauft! Neuer Vorrat: " + bier.vorratInLiter + " Liter.");
          }
     }
}

BierProbleme.java

package Kneipe;

public class BierProbleme extends Exception{
     public BierProbleme() {
          super("Bier ist leer! Bitte neues Kaufen!!! Rothaus schmeckt am Besten!");
     }
}

Viel Spaß beim trinken 😉



Leave a Reply