Fehler im Stream
Mit "Try" oder ".try" lässt sich ein Fehler auch innerhalb eines Streams abgefangen.
Try.stream
x = Try.stream.proc( 5/0 ).print
x.catch
it.show
Hier wird von "Try" die Funktion ".stream" genutzt. Das letzte ".print" wird nicht ausgeführt, da davor bei ".proc" ein Fehler auftritt und der Stream abgebrochen wird.
Der Fehler wird anschließend in der Variable "x" gespeichert. "x" kann nun entweder einen Fehler oder das Endergebnis des Streams enthalten. Mit ".catch" wird der Fehler weiter verarbeitet.
".try"
Mit der Funktion ".try" lässt sich dies noch besser im Stream integrieren.
x = 5.try.div( 0 ).print
x.catch
it.show
Durch ".try" wird ein nachfolgender Fehler abgefangen. Die 5 wandert somit zur ".div"-Funktion, wo sie durch 0 geteilt werden soll. Dies führt klar zu einem Fehler. Der Stream wird abgebrochen und der Fehler der Variable "x" zugewiesen.
Mit ".catch" wird der Fehler anschließend verarbeitet.