In letzter Zeit hatte ich Mühe zu verstehen, wie viele Überprüfungen richtig sind und welche Methoden richtig sind.
Ich habe ein paar Fragen dazu:
Was ist der richtige Weg, um nach Fehlern zu suchen (fehlerhafte Eingaben, fehlerhafte Zustände usw.)? Ist es besser, explizit nach Fehlern zu suchen oder Funktionen wie Asserts zu verwenden, die aus Ihrem endgültigen Code heraus optimiert werden können? Ich habe das Bedürfnis, ein Programm mit viel zusätzlichem Code, der in den meisten Situationen sowieso nicht ausgeführt werden sollte, explizit auf Unordnung zu überprüfen - und ganz zu schweigen davon, dass die meisten Fehler mit einem Abbruch- / Beendigungsfehler enden. Warum eine Funktion mit expliziten Prüfungen überladen, nur um abzubrechen? Ich habe nach Behauptungen im Vergleich zur expliziten Überprüfung von Fehlern gesucht und wenig gefunden, um wirklich zu erklären, wann dies zu tun ist.
Die meisten sagen: "Verwenden Sie Asserts, um nach Logikfehlern zu suchen, und verwenden Sie explizite Prüfungen, um nach anderen Fehlern zu suchen." Dies scheint uns jedoch nicht sehr weit zu bringen. Würden wir sagen, dass dies machbar ist:
Malloc returning null, check explictly
API user inserting odd input for functions, use asserts
Würde mich das bei der Fehlerprüfung verbessern? Was kann ich sonst noch tun? Ich möchte mich wirklich verbessern und besseren, "professionellen" Code schreiben.
setjmp
/ longjmp
sind in C verfügbar, sodass Sie keine neue Sprache benötigen.