Java Exception

Fehlersuche in der Programmierung

Bei der Programmierung von umfangreichen Programmen oder auch einfachsten Programmen passieren jedem Entwickler einmal Fehler. Hierbei wird zwischen drei Arten von Fehlern unterschieden:

  1. Syntaxfehler: (z.B. iff,wile,elze usw.) Diese Art von Fehler findet meistens der Compiler. Die Fehler werden dann Rot im Programmcode unterstrichen.
  2. Logische Fehler: Das Programm läuft einwandfrei, aber der Entwickler kann sich nicht erklären warum das Programm nicht das tut was er sich vorstellt. Dieses Problem kann entweder durch instrumentalisierung der Software behoben werden (Variablen verändern und Bedingungen anpassen etc.) oder durch den Debugger, der Schrittweise durch das Programm läuft und dem ENtwickler erklärt wie das Programm den Code durchläuft.
  3. Laufzeitfehler: Programm läuft erst an aber stürzt dann ab. Früher führte ein Programmabsturz zum “DUMP”, d.h. dass das Programm alle Daten sichert, die bis zum Absturz verwendet wurden. Die Ausgabe erfolgt in Hexadezimalzahlen. Heute gibt es zum Glück sogenannte Exceptions, die dem Programmierer sagen, was er falsch gemacht haben könnte.

Java kennt unendlich viele Exceptions, die der Benutzer aus Standardbibliotheken beziehen kann oder auch bei Bedarf eigene Regeln hinzufügen kann. Durch das hinzufügen von Regeln kann ein Programm für Nutzer besser begrenzt werden. Das heißt, dass der Benutzer nur bestimmte Daten eingeben kann oder nur bestimmte Funktionen eines Programmes für die Benutzung sinnvoll sind. Alle Standard Exceptions in Java Erben von der Klasse java.lang.Exception. Hier ein paar Exceptions die Java kennt:

Neben den Standard Exceptions kann der Benutzer eigene Exception Klassen aufbauen oder bestehende durch die Vererbung anpassen und verändern.

Wie baut man Exceptions in den Java Code ein?

Um dir die Realisierung im Java Code zu zeigen, müssen wir erst einmal ein Beispiel nennen, das die Benutzung einer Exception fordert. Wir denken zurück an unseren Dividierer. Wenn wir durch null dividieren, gibt das Programm einen Fehler zurück. Außerdem macht die Division durch eins auch wenig Sinn. Wir legen hierfür eine neue Klasse an, die den Benutzer zwei Zahlen eingeben lässt und diese dann dividiert. Der Code für den Dividierer könnte folgendermaßen aussehen:

Es gibt in Java noch andere Möglichkeiten regeln festzulegen. Die einfachste Variante ist hierbei die Regeln festzulegen mit Kontrollstrukturen wie If, do while, while, for usw.. Diese Variante deckt aber nicht alle Fälle ab, deswegen sind Exceptions in Java durchaus sinnvoll. Außerdem wird der Code durch try und catch Blöcke deutlich übersichtlicher. Eine Alternative hierzu bieten Assertions. Durch Assertions kann man auch Regeln innerhalb eines Java Programms festlegen. Wenn man Assertions ausführen möchte ist jedoch zu beachten, dass man die RunConfigurations in Eclipse anpassen muss. Hierbei musst du einfach unter (x=) Arguments und dann unter VM Arguments den Parameter “-ea” eintragen. Ein einfaches Beispiel für Assertions wäre ein Geldautomat, an dem der Nutzer nicht weniger als 5 aber auch nicht mehr als 2000€ abheben kann. So könnte das Programm aussehen: