Sehr oft geben Treiberfunktionen Fehlercodes zurück, die von der Anwendung überprüft werden können, um Fehler zu beheben.
Welcher der folgenden Ansätze ist der beste Weg, um Fehlercodes zu definieren und zu behandeln, die von Treiberfunktionen zurückgegeben werden:
ERROR_CODES
und geben Sie -ERROR_CODE
.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.
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.
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.