Ist „asser()“ die Brut des Teufels? Eine rationale Untersuchung
In ihrer Weisheit haben die Schöpfer der Go-Sprache entschieden, dass Behauptungen böse sind, eine Krücke, die eine ordnungsgemäße Fehlerbehandlung und -berichterstattung erstickt. Aber wie halten sich diese Argumente im Bereich C und C?
Argumente gegen Behauptungen
Laut dem Go-Team sind Behauptungen problematisch, weil:
-
Sie fördern eine verzögerte Fehlerbehandlung. Programmierer können sich auf Zusicherungen verlassen Fehler abfangen, anstatt robuste Fehlerbehandlungsmechanismen zu implementieren.
-
Sie stellen indirekte und ausführliche Fehlermeldungen bereit. Durch Behauptungen generierte Absturzspuren können schwer zu interpretieren sein, was es schwieriger macht, die Grundursache zu lokalisieren.
Argumente für Behauptungen
Trotz der Bedenken Behauptungen, die von den Go-Erstellern angesprochen wurden, haben ihren Nutzen, insbesondere in den folgenden Szenarien:
-
Debugging: Behauptungen dienen als wertvolles Werkzeug zur Identifizierung logischer Fehler, die wahrscheinlich nicht auftreten während des normalen Betriebs.
-
Laufzeitvalidierung: Behauptungen können verwendet werden, um Eingaben oder den Systemstatus vorher zu validieren Durchführung kritischer Vorgänge und bietet zusätzlichen Schutz vor unerwarteten Bedingungen.
Vor- und Nachteile
Vorteile:
- Erleichtern Sie die schnelle Identifizierung logischer Fehler
- Stellen Sie eine zusätzliche Ebene bereit Validierung
- Kann die Lesbarkeit des Codes verbessern
Nachteile:
- Kann bei übermäßiger Verwendung die ordnungsgemäße Fehlerbehandlung ersetzen
- Generieren Sie ausführliche und möglicherweise verwirrende Fehlermeldungen
- Kann das Programm verlangsamen Ausführung
Fazit
Die Verwendung von „asser()“ ist nicht grundsätzlich böse, sollte aber mit Bedacht eingesetzt werden. Behauptungen sollten Debugging-Zwecken oder als sekundäre Verteidigungslinie gegen unerwartete Bedingungen vorbehalten bleiben. Durch die Einhaltung dieser Prinzipien können C- und C-Programmierer die Vorteile von Behauptungen nutzen, ohne ihre Codequalität oder Leistung zu beeinträchtigen.
Das obige ist der detaillierte Inhalt vonIst „assert()' in C und C wirklich böse?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!
Stellungnahme:Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn