Fehler / Fehler fangen

Fehler fangen

Fehler können in jedem Programm auftreten. In kleinen Skripten wird die Fehlerbehandlung eher ignoriert, in größeren Programmen ist ein gutes Fehlermanagement definitiv sinnvoll. Wird ein Fehler nicht gefangen, beendet sich die gesamte Anwendung.

Fehler einfangen

Die einfachste Methode um einen Fehler kontrolliert zu fangen ist Try-Catch:

Try
	Print 'a'
	Print 5 / 0
	Print 'b'
.catch.show

Hier wird ein "Try"-Objekt erzeugt und die Auto-Block-Funktion ".block" ausgeführt. Das 'a' wird noch ausgegeben, 'b' jedoch nicht mehr, da in der Zeile davor ein Fehler auftritt. Die Funktion ".block" gibt nun den Fehler zurück.

Die Funktion "catch" prüft nun, ob das aktuelle Objekt im Stream ein Fehler ist und führt ggf. den angehängten Block/Stream aus. Ein ".show" gibt den Fehler vollständig aus.

Alternativ läßt sich ein Fehler auch mit der Objekt-Funktion ".try" einfangen.

5.try
	( it / 0 ).print
.catch.show

Das Ergebnis ist identisch. Diese Variante ist hier weiter erklärt: "Flow - Fehlerverarbeitung"

Die Funktion ".show" ist direkt eine Funktion des Fehlers selbst.

Auswerten

Ein Fehler ist ebenso ein "normales" Objekt. Ein Fehler wird mit einem "Try" oder ".try" eingefangen und kann mit ".catch" ausgewertet werden.

Jeder Fehler enthält folgende Informationen, welche mit der zugehörigen Funktion ausgelesen werden können:

Information Funktion
.group
Fehler-Gruppe
.message
Nachricht
.detail
Detail
.call
Befehl
.instance
Instanz
.source
Quelle (Datei und Zeile)
.file
Datei
.line
Zeilennummer

Im ".catch"-Block lassen sich die einzelnen Daten ausgeben:

Try
	5 / 0
.catch.show
	Print it.group
	Print it.message
	Print it.detail
	Print it.file
	Print it.line
- Powered by OghsWiki -

 

 

Unterstützen

Die Entwicklung von "JayMo" wird derzeit nur durch Eigeninitiative ermöglicht.

Erhalten:  0 €