Fehlerbehandlung

 [Vorheriges Kapitel]  [Vorherige Seite]  [Inhaltsverzeichnis]  [Nächste Seite]  [Nächstes Kapitel]

Concatenate.om
IF ~UnixFiles.Open(in, pathname,
      UnixFiles.read, Streams.onebuf, NIL) THEN
   Write.StringS(Streams.stderr, pathname);
   Write.StringS(Streams.stderr, ": cannot be ");
   Write.StringS(Streams.stderr, "opened for ");
   Write.LineS(Streams.stderr, "reading");
   Process.Exit(Process.indicateFailure);
END;

*Fehler sollten nicht nach Streams.stdout geschrieben werden, sondern nach Streams.stderr, damit sich Fehlermeldungen nicht unbemerkt in die normale Ausgabe eines Programms mischen.
 
*Dies ist insbesondere relevant, wenn die Standard-Ausgabe in eine Datei umgelenkt wird.
 
*Wenn etwas schief geht, sollte das Programm sich so verabschieden, daß die Umgebung weiß, daß es nicht erfolgreich war. Process.Exit terminiert das Programm mit dem angegebenen Exit-Code. 0 bedeutet hier Erfolg und jedes andere Resultat Mißerfolg.
 
dublin$ Concatenate /unbekannte/datei >/tmp/out
/unbekannte/datei: cannot be opened for reading
dublin$

 [Vorheriges Kapitel]  [Vorherige Seite]  [Inhaltsverzeichnis]  [Nächste Seite]  [Nächstes Kapitel]
Copyright © 2004, 2005 Andreas Borchert, in HTML konvertiert am 18.02.2005