Kann ich eine bestimmte Warnung als Fehler behandeln?

Lesezeit: 2 Minuten

Das Folgende ist eine vereinfachte Version eines Musters, das ich manchmal im Code meiner Schüler sehe:

bool foobar(int a, int b)
{
    if (a < b) return true;
}

Der echte Code ist natürlich komplizierter. Visual Studio meldet eine Warnung C4715 (nicht alle Steuerpfade geben einen Wert zurück), und ich möchte alle Warnungen C4715 als Fehler behandeln. Ist das möglich?

  • Sicherlich sollten Sie einfach alle Warnungen als Fehler behandeln. 🙂

    – GManNickG

    20. Januar 2011 um 18:20 Uhr

  • @GMan: Obwohl ich im Allgemeinen zustimme. Manchmal ist es notwendig, bestimmte Dinge zu können.

    – Martin York

    20. Januar 2011 um 18:59 Uhr

  • @GManNickG – ich habe mich kürzlich eingeschaltet -Werror für ein Projekt von mir und erkannte, dass es eine Kehrseite hat, nämlich dass es hilfreich ist, Fehler als Fehler oder Warnungen zu kategorisieren, wenn ich den Code entwickle. Ich kann “aha, 2 Warnungen und 1 Fehler” sehen und anfangen zu antizipieren, was ich wahrscheinlich falsch gemacht habe, besser als wenn ich nur “3 Fehler” sehe. Wirklich -Werror scheint nur notwendig, wenn dies der einzige Weg ist, Leute dazu zu bringen, Warnungen im Code zu entfernen.

    – orion elenzil

    14. Dezember 2018 um 18:30 Uhr

Benutzer-Avatar
Eugen Constantin Dinca

Das sollte den Trick machen: #pragma warning (error: 4715).
Oder der /we4715 Befehlszeilenoption (vgl /w, /W0, /W1, /W2, /W3, /W4, /w1, /w2, /w3, /w4, /Wall, /wd, /we, /wo, /Wv, /WX (Warnstufe ) (mit freundlicher Genehmigung von Tom Sigerdas)).

  • Tut das pragma müssen in allen Dateien enthalten sein, damit es zählt, oder irgendwelche im Projekt?

    – TankorSmash

    24. Januar 2015 um 2:50 Uhr

  • Dokumentation: /w, /Wn, /WX, /Wall, /wln, /wdn, /wen, /won (Warnstufe)

    – Tom Sirgedas

    18. Januar 2016 um 17:23 Uhr

  • @TomSirgedas Vielen Dank für den Dokumentationslink.

    – Eugen Constantin Dinca

    18. Januar 2016 um 20:03 Uhr

Benutzer-Avatar
Mr. Furious Kanada

/we4715 funktioniert bei mir.

In Visual Studio 2013 ist es sowieso in der Benutzeroberfläche unter Projekt Einstellungen -> Konfigurationseigenschaften -> C/C++ -> *Erweitert *-> Behandeln Sie bestimmte Warnungen als Fehler. Fügen Sie “4715” hinzu.

Dokumente: http://msdn.microsoft.com/en-us/library/thxezb7y.aspx

(Bitte beachten Sie, dass diese Seite die falsche UI-Eigenschaft für VS2013 auflistet.)

Ich habe der (VB) Projektdatei Folgendes hinzugefügt und es hat funktioniert:

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">  
<WarningsAsErrors>41999,42016,42017,42018,42019,42020,42021,42022,42032,42036,41997</WarningsAsErrors>
</PropertyGroup>

Benutzer-Avatar
Zac Howland

Legen Sie die Warnstufe des Compilers auf Stufe 4 (in Visual Studio) fest, und alle Warnungen werden als Fehler behandelt. Es ist eine gute Praxis, Ihre Schüler ihren Code sowieso ohne Warnungen und ohne Fehler kompilieren zu lassen 🙂

Aktivieren Sie außerdem die Compileroption /WX.

1015740cookie-checkKann ich eine bestimmte Warnung als Fehler behandeln?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy