Defensives Programmieren



Unter defensivem Programmierer Wird Eine Programmierung von Computer schlechte Kandidaten, sterben viele Möglichst Voraussetzungen selbst überprüft, Bevor der Eigentlich Selbstzweck Erfüllt Wird. Ein Programm ist meine Manifestation und unbekannte Aspekte, verschiedene Betriebssysteme und -Versionen konfrontiert. Die so defensiven Programme sind fehlerhaft gegenüber allen Eingängen und Voraussetzungen robust. Durch den Vorausblick auf den nächsten Prozess.

Ein Alternativansatz zur defensiven Programmierung ist vertragsgemäß . Dabei Stellt diejenige Komponenten, WELCHE Dienstleistung Einer other Komponenten in anspruch Nimmt, auf der Basis Lediglich Eines sterben VertragEine Reihe von Vorbedingungen sicher und verlässt sich auf Nachbedingungen, sterben für sterben Dienstleistung im Vertrag Definiert gerechnet wurden. Defensive Bei Programmierung Ist hingegen sterben Vorbedingungen UNKLE, während Nachbedingungen von der in anspruch nehmenden Komponenten überprüft Werden Müssen sterben.

Ein System muss sich nicht verordnen. Grundsätzlich Lässt es sich so aufteilen that Einwirkungen von außen (Benutzereingaben, Datum Import, API ) Defensive zu handhaben Sind, während das bei Inneren Ablauf nicht erforderlich Wir ist.

Beispiel

Potenziell unerwartete Benutzereingabe, mit dem Cousin, der gepflanzt wurde, konnten die Abwehr bekämpfen.
  • Ein Druckereintrag wurde gelöst. Sein defensiv ersetztes Programm ist zuerst, ob der anzusprechende Drucker überhaupt vorhanden ist. Das Programm ist für den Rückgabewert der Löschfunktion ausgelegt. Fallstrassen wurden eher aus dem Weg geräumt, vielleicht war es wegen des Programms der richtige, und probiert das Löschen.
  • Eine Datei soll von einem Verzeichnis in ein anderes Verzeichnis kopiert werden. Ein defensives Programm ist verfügbar, weil es möglich ist zu lesen und zu lesen. Dann wird geprüft, ob das Zielverzeichnis vorhanden und beschreibbar ist. Ist es nicht vorhanden, so ist das Programm für die Öffentlichkeit zugänglich und wird von der GGF zur Verfügung gestellt. Es sei denn. Letztendlich wird dann die Datei in verschlüsselte und erreichbare Verzeichnisse kopiert.
  • Die Eingabe eines Benutzers wurde von den Vorgaben völlig abgestellt (siehe Abbildung). Ein Programmierer mit Weitblick erkennt solwij michichen Situationen und hat die Benutzereingaben, bevor die eigene Verarbeitung begint. Im Beispiel der Abbildung ist zu sehen, dass dieses Eingaben korrrigieren.

Gegenteil des defensiven Programmierens

Dort Programmierung Hat – je nach Programmiersprache – verschietene Mithandlungen des Exception Handlings , der Behandlung von Ausnahmen. This möglichkeiten Werden jedoch nicht mehr Unter dem Begriff defensive Programmierung zusammengefasst, Sondern es geht Daruma Beliebers auftretende, nicht vorhersehbare Fehler abzufangen. Gerade Gegensatz zum defensiven Programmierung verhält sie beispielsweise Form in Visual Basic beliebte anweisung On Error Resume Next(umgangssprachlich aus Unbekannter Quelle Auch OERNy genannt, auf Deutsch „mach einfach weiter“). Der vorteil dabei ist, Dass Die Anwendungen nicht abstürzt, stirbt allerdings mit unabsehbaren Folgen, das heißt, das Ergebnis Kann unter umständen Völlig UNANGEBRACHTE sein.