Riot: [RFC] Definition von Fehlercodes, die von Treiberfunktionen zurückgegeben werden

Erstellt am 31. Dez. 2018  ·  7Kommentare  ·  Quelle: RIOT-OS/RIOT

Beschreibung

Sehr oft geben Treiberfunktionen Fehlercodes zurück, die von der Anwendung überprüft werden können, um Fehler zu beheben.

Frage

Welcher der folgenden Ansätze ist der beste Weg, um Fehlercodes zu definieren und zu behandeln, die von Treiberfunktionen zurückgegeben werden:

  1. Definieren Sie positive ERROR_CODES und geben Sie -ERROR_CODE .
  2. Definieren Sie negative ERROR_CODES und geben Sie einfach ERROR_CODE .

Ansatz 1 folgt dem UNIX-Stil, ist jedoch fehleranfällig und die Anwendung muss berücksichtigen, dass die negativen Werte der Fehlercodes überprüft werden müssen.

Ansatz 2 hat den Vorteil, dass die Fehlercodes sowohl in Treiberfunktionen als auch von der Anwendung direkt verwendet werden können.

Persönlich bevorzuge ich Ansatz 1 trotz der Nachteile.

Problem

Beim Durchsuchen der Treiberimplementierungen habe ich beide Ansätze gefunden. Möglicherweise sollte eine Entwurfsregel definiert werden, die einen Ansatz angibt, damit alle Treiber denselben Ansatz verwenden.

drivers RFC question

Alle 7 Kommentare

Mein persönlicher Geschmack gilt für 1.
Sollten wir auch in Betracht ziehen, überall errno zu verwenden, um mit Fehlercode umzugehen? (wie die I2C-API)

Ja, UNIX-Stil + errno bekommt meine Stimme!

Ja, UNIX-Stil + errno bekommt meine Stimme!

+1, solange "errno" bedeutet, nur die Fehlerfehler aus errno.h zu verwenden, nicht die Variable errno!

überall errno verwenden, um mit Fehlercode umzugehen?

Ich denke, wir sollten diesbezüglich nicht dogmatisch sein. Dies sollte wie folgt formuliert werden: "Versuchen Sie, fehlerhafte Fehlercodes zu verwenden", und mischen Sie sie möglicherweise nicht mit benutzerdefinierten. Wenn es einen Fall gibt, in dem Fehler einfach nicht passen, ist es akzeptabel, benutzerdefinierte Fehlercodes zu haben.

Dieses Problem wurde automatisch als veraltet markiert, da es in letzter Zeit keine Aktivitäten gab. Es wird geschlossen, wenn keine weitere Aktivität stattfindet. Wenn Sie möchten, dass ich dieses Problem ignoriere, markieren Sie es bitte mit dem Etikett "Status: nicht abgestanden". Vielen Dank für Ihre Beiträge.

Die Vereinbarung bestand darin, Fehlercodes im UNIX-Stil zu verwenden, dh negative Werte. Sollten wir es irgendwo dokumentieren?

Dieses Problem wurde automatisch als veraltet markiert, da es in letzter Zeit keine Aktivitäten gab. Es wird geschlossen, wenn keine weitere Aktivität stattfindet. Wenn Sie möchten, dass ich dieses Problem ignoriere, markieren Sie es bitte mit dem Etikett "Status: nicht abgestanden". Vielen Dank für Ihre Beiträge.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen

Verwandte Themen

kaspar030 picture kaspar030  ·  3Kommentare

jue89 picture jue89  ·  5Kommentare

miri64 picture miri64  ·  5Kommentare

l3nko picture l3nko  ·  7Kommentare

nikosft picture nikosft  ·  6Kommentare