Kodierung von Fehlerzuständen

02/01/2009 - 19:27 von Michael Schuerig | Report spam
Angenommen, in einer Funktion können sowohl Systemfehler als auch
Programm-spezifische Fehler auftreten. Erstere sind repràsentiert durch
einen bestimmten Rückgabewert der aufgerufenen Funktion, etwa NULL
oder -1, und eventuell durch errno. Für die Programm-spezifischen
Fehler muss ich mir selbst eine Repràsentation ausdenken.

Ich möchte beide Fehlerarten auf der obersten Ebene -- ist ein Fehler
aufgetreten oder nicht -- gleich behandeln. Zu dieser Vereinheitlichung
fallen mir zwei Wege ein:

1. Alle Fehler werden auf eine Programm-spezifische Repràsentation
abgebildet, sei es auf einen Zahlencode oder auf eine geeignete
Struktur. Aufrufer müssen auf != 0 oder ein Flag in der Struktur
testen.

2. Systemfehler werden durch den Rückgabewert -1 angezeigt, Details
stehen in errno. Programm-spezifische Fehler werden durch den
Rückgabewert -2 angezeigt, Details stehen in app_errno (static,
thread-local). Aufrufer müssen auf < 0 testen.

Die zweite Variante gefàllt mir viel besser. Gibt es weitere
Konventionen und wie sind die Abwàgungen dazwischen?

Michael

Michael Schuerig
mailto:michael@schuerig.de
http://www.schuerig.de/michael/
 

Lesen sie die antworten

#1 ram
02/01/2009 - 19:51 | Warnen spam
Michael Schuerig writes:
1. Alle Fehler werden auf eine Programm-spezifische
Repràsentation abgebildet, sei es auf einen Zahlencode oder auf
eine geeignete Struktur. Aufrufer müssen auf != 0 oder ein Flag
in der Struktur testen.



(Was Du als »Fehler« bezeichnest nenne ich eher »Fehlerbericht«.)
Siehe:

http://en.wikipedia.org/wiki/HRESULT
http://doc.ddart.net/msdn/header/in...ror.h.html

Ähnliche fragen