Diskussion Do-Or-Die

german

Aktives Mitglied
devCommunity-Experte
Weiß nicht mal ob es diese Begrifflichkeit in Bezug auf Programmierung überhaupt gibt oder sich etwas anderes etabliert hat. Das ist allerdings etwas, was ich aktuell anwende.
Wo ich so etwas unter anderem gesehen habe: ValueOrDie in der Chromium checked_math Lib.
Warum ich es verwende:
https://dev-community.de/threads/c-string-und-vector-bibliotheken.117/#post-727 (Frage 2).
Soll heißen, wenn ein Punkt erreicht ist, wo es keinen Sinn mehr hat sinnvoll weiter zu machen, dann crasht das Programm.

Was haltet ihr von so etwas? Und sollte ich bei den entsprechenden Funktionen auch die Möglichkeit bieten, einen Funktionspointer auf eine Handlerroutine zu übergeben?
 

asc

Mitglied
devCommunity-Experte
Bei Speicher verfahre ich da generell genauso, es macht keinen Sinn hier zu versuchen zu recovern, da, wie du ja schon geschrieben hast, das System eh kurz vor dem Kollaps steht. Selbst mit einem Funktionspointer auf eine Handlerroutine wird man in diesem Fall nicht mehr viel retten können :D

Generell finde ich es aber nicht verkehrt, unter Linux gibt es eine solche Funktionalität ja bereits mittels Signalhandlern.
 

german

Aktives Mitglied
devCommunity-Experte
Bei Speicher verfahre ich da generell genauso
Schon mal gut zu wissen, dass ich da nicht komplett aus der Reihe tanze.

Generell finde ich es aber nicht verkehrt
Ja, darum denke ich auch drüber nach. Ich weiß nur noch nicht genau ob ich dann auch noch einen weiteren void* als Parameter für den Handler hinzufügen sollte. Irgendwie vermute ich dass die Parameterliste dann anfängt unübersichtlich zu werden. Hmmm...

unter Linux gibt es eine solche Funktionalität ja bereits mittels Signalhandlern.
Nur unter Linux? Ich dachte eigentlich signal.h gehört zum C-Standard. Ehrlich gesagt habe ich mich damit nur wenig beschäftigt, weil mir das Konzept etwas widerstrebt. Die Anzahl an Signals ist begrenzt bzw. implementationsspezifisch und der Handlerfunktion kann kein benutzerdefinierter Wert übergeben werden. Wie Signals über die Grenzen von Übersetzungseinheiten gehandhabt werden, müsste ich tatsächlich auch erst mal nachlesen.

Go bietet zur Behandlung von Programmierfehlern den Panic-Mechanismus an
Das Konzept von Exceptions ist mir von diversen Sprachen bekannt. Für C in meinem Fall leider nicht unterstützt.
 
Oben Unten