Was ist bei der Computerprogrammierung der Unterschied zwischen Warn- und Fehlermeldungen?


Antwort 1:

Eine Fehlermeldung (von einem Compiler) weist auf ein Problem mit dem Programmtext hin, das so schwerwiegend ist, dass die Generierung von Code verhindert wird, der möglicherweise vom Programmierer beabsichtigt ist.

Eine Warnmeldung (von einem Compiler) weist auf ein Problem mit schlechten Praktiken oder Nachlässigkeiten hin, das nicht so schwerwiegend ist, dass die Generierung von Code verhindert wird, aber möglicherweise impliziert, dass der Code nicht das tut, was der Programmierer beabsichtigt hat.

Ich habe in meinem Compiler ein Flag gesetzt, um alle Warnmeldungen in Fehlermeldungen umzuwandeln, sodass der Compiler nicht versucht, ein ausführbares Image zu erstellen, das seiner Meinung nach fehlerhaft ist.


Antwort 2:

Ich nehme an, Sie sprechen während der Kompilierung darüber.

Bei Fehlern haben Sie die Sprache falsch verwendet, und der Compiler kann nicht verstehen, was Sie geschrieben haben, und wird nicht versuchen, das zu verwenden, wonach Sie gefragt haben. Es verhindert GIGO.

In Warnungen haben Sie möglicherweise die Sprache missbraucht. Der Compiler kann den Code wie geschrieben verwenden, aber er kann feststellen, dass Sie eine Schwachstelle in Ihrem Code eingeführt haben, und er verhält sich möglicherweise nicht so, wie Sie es beabsichtigt haben, sondern verhält sich wie geschrieben. Möglicherweise verwenden Sie „einen ordentlichen Trick“, aber ordentliche Tricks führen Sie oft dahin, wo es weh tut.

Sie finden häufig eine Compileroption, die in Release-Builds verwendet wird, bei denen Warnungen als Fehler behandelt werden und behoben werden müssen, bevor Sie den Code freigeben können. Während des Debuggens und der frühen Entwicklung können Warnungen für die Ausführung toleriert werden, sodass Sie möglicherweise nicht so restriktiv sind.

Zum Beispiel der Satz

Öl Toaster Pfanne

bedeutet nichts und wird nichts und bekommt einen Fehler, der Satz ist kein Satz. jedoch

gießen Sie Öl in Toaster

Löst eine Warnung aus. Die Anweisungen sind klar und einfach und können befolgt werden. Da wir jedoch wissen, dass Öl in einen Behälter (oder vielleicht in einen Abfluss) gefüllt werden sollte und Toaster keine Behälter (oder Abflüsse) sind, würden wir eine Warnung geben. Wenn Sie sagen, wir sollten es trotzdem tun, führen Sie das Programm aus, wir werden pflichtbewusst Öl in Ihren Toaster gießen. Sie haben jetzt eine unordentliche Theke und einen Toaster, den Sie nicht benutzen sollten. Die Ergebnisse sind nicht das, was Sie erwartet haben, aber die Aktion war möglich.

Natürlich haben einige Sprachen Compiler, die den falschen Typ sehen und Ihnen einen Fehler geben, keine Warnung.


Antwort 3:

Andere Antworten beziehen sich auf kompilierte Sprachen, aber die Unterscheidung zwischen Fehlern und Warnungen wird außerhalb dieser Domäne gesehen. Im Allgemeinen ist ein Fehler ein Problem mit dem Programm, das so bedeutend ist, dass das Programm nicht fortgesetzt werden sollte, während eine Warnung möglicherweise nicht schädlich ist, aber Sie wahrscheinlich darauf achten möchten. Es ist empfehlenswert, bei der Entwicklung von Code die Richtlinie "Keine Warnungen" zu verwenden. Sie sind verwirrend und jeder neue Mitwirkende an der Codebasis muss verstehen, warum die Warnung vorhanden ist.