Fehlerbehandlungen in der Klausur

Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.

Fehlerbehandlungen in der Klausur
Hallo,

es ist mir aufgefallen dass in vielen Klausurlösungsversuchen Funktionen auftauchen die nicht einheitlich fehlerbehandelt werden. Da die Fehlerbehandlungen einiges an Zeit nehmen können wollte ich fragen bei welchen Funktionen man in der Klausur auf eine Fehlerbehandlung verzichten kann. Und zwar konkret bei:

pthread_mutex_
lock()
unlock()
destroy()
pthread_cond_
signal()
broadcast()
wait()
destroy()

bind()
listen()
accept()
getaddrinfo()

sigaction()
sigprocmask()
sigsuspend()

fopen()
opendir()


Die Fehlerbehandlung kann in der Klausur bei folgenden Funktionen (aus deiner Liste) weggelassen werden:

  • [m]pthread_mutex_{lock,unlock,destroy}[/m]
  • [m]pthread_cond_{signal,broadcast,wait,destroy}[/m]
  • [m]sigaction[/m] (falls die Parameter fix sind, also keine neuen Fehler zur Laufzeit auftreten können; wie in SP generell)
  • [m]sigprocmask[/m] (dito)
  • [m]sigsuspend[/m] (dito)

Das sind alles Funktionen bei denen entweder die (statischen) Parameter falsch sind (und damit der Fehler immer auftritt) oder bei denen keine sinnvollen Fehler definiert sind. Damit braucht man dort in der Klausur keine Fehlerbehandlung (in robusten Programmen sollte sie natürlich trotzdem nicht fehlen).

Sonst ist generell Fehlerbehandlung notwendig. Eine Ausnahme ist dieses Semester noch die Ausgabe ([m]printf[/m], etc.). Dort ist diesmal keine Fehlerbehandlung nötig. Das kann sich aber nächstes Semester ändern (da es dieses SP1-Semester ja schon in der Übung notwendig war, dort Fehler zu behandeln inklusive [m]fflush[/m]).


Genereller Hinweis: Oft ist eine Funktion void die(const char *msg) vorgegeben. Im Hinblick auf die Zeit ist es ratsam, diese Funktion dann auch zu nutzen und es bei der Laenge der Fehlermeldung nicht zu uebertreiben :wink:


Ein Zeichen ist da für die Klausur auch gut genug.


Alles klar, danke!