1. Foren
  2. Kommentare
  3. Security
  4. Alle Kommentare zum Artikel
  5. › GnuTLS: Fehlerhafte Zertifikate…
  6. T…

So ein Fehler muss doch spätestens beim Kompilieren auffallen ...

  1. Thema
  1. 1
  2. 2
  3. 3

Neues Thema Ansicht wechseln


  1. Re: So ein Fehler muss doch spätestens beim Kompilieren auffallen ...

    Autor: Granini 04.03.14 - 19:48

    thomas001le schrieb:
    --------------------------------------------------------------------------------
    > Wie willst du sonst sowas machen, außer mit goto in C:
    >
    > {
    > if(!good) goto cleanup;
    > ..
    > if(!good2) goto cleanup;
    > ..
    > cleanup:
    > long_cleanup_code();
    > }

    Ich hätte C++ verwendet. Aber gut, bleiben wir mal bei C.
    Mit Goto sieht es so aus:
    doSomething()
    {
    if(!good1) goto cleanup;
    ..
    if(!good2) goto cleanup;
    ..
    cleanup:
    long_cleanup_code();
    }

    Was spricht dagegen es so zu machen?:
    doSomething()
    {
    if(!good1) return;
    ..
    if(!good2) return;
    ..
    }

    Und dort wo doSomething aufgerufen wird:
    doMore()
    {
    doSomething();
    cleanUp();
    }
    Nirgendwo sonst wird doSomething direkt aufgerufen (außer an der einen Stelle).
    Es wird nur doMore benutzt.

  2. Re: So ein Fehler muss doch spätestens beim Kompilieren auffallen ...

    Autor: aha47 04.03.14 - 21:20

    M.P. schrieb:
    --------------------------------------------------------------------------------
    > Die neue Schule ist ein try / catch mit einem throw ... an der Stelle, wo
    > jetzt das goto steht ;-)
    >
    > Das ist dann wieder die "reine Informatiker-Schule"

    Öhm, nein, definitiv nicht.

    http://c2.com/cgi/wiki?DontUseExceptionsForFlowControl

  3. Re: So ein Fehler muss doch spätestens beim Kompilieren auffallen ...

    Autor: zampata 05.03.14 - 01:43

    angeblich:
    [quote]
    The -Wunreachable-code has been removed, because it was unstable: it
    relied on the optimizer, and so different versions of gcc would warn
    about different code. The compiler still accepts and ignores the
    command line option so that existing Makefiles are not broken. In some
    future release the option will be removed entirely.
    [/quote]

    Leider gibt es keine Begründung für das entfernen der Option; nur eine Bestätigung dass dies Erfolgen wird.

    http://gcc.gnu.org/ml/gcc-help/2011-05/msg00360.html

  4. Re: So ein Fehler muss doch spätestens beim Kompilieren auffallen ...

    Autor: tendenzrot 05.03.14 - 09:23

    Auf gar keinen Fall. "Single Point of Return" und wenn ich dafür ein Goto verwenden müsste.

  5. Re: So ein Fehler muss doch spätestens beim Kompilieren auffallen ...

    Autor: M.P. 05.03.14 - 10:17

    Wobei der Codeschnipsel aus dem Artikel schon sehr nach Fehlerbehandlung aussieht...

    OT:
    Ich habe mal Code gesehen, wo bei einem Kommunikationsstack eine Art Lern-Prozedur für die auftretenden maximalen Puffer-Größen bei jedem Auftreten einer Pufferüberschreitung eine Exception geschmissen hat, die dann im Catch einen größeren Puffer allozierte.

    Hatte den Code von einem Kollegen zur Pflege geerbt, und war beim Ausprobieren des Codes erstmal für einen Vormittag auf der falschen Fährte, weil ich das für einen Fehler hielt...

  1. Thema
  1. 1
  2. 2
  3. 3

Neues Thema Ansicht wechseln


Um zu kommentieren, loggen Sie sich bitte ein oder registrieren Sie sich. Sie müssen ausserdem in Ihrem Account-Profil unter Forum einen Nutzernamen vergeben haben. Zum Login

Stellenmarkt
  1. Lidl Digital, Berlin
  2. Hannover Rück SE, Hannover
  3. Fresenius Medical Care Deutschland GmbH, St. Wendel
  4. Fraunhofer-Institut für Optronik, Systemtechnik und Bildauswertung IOSB-AST, Ilmenau

Golem pur
  • Golem.de ohne Werbung nutzen

Anzeige
Hardware-Angebote
  1. täglich neue Deals bei Alternate.de
  2. (reduzierte Überstände, Restposten & Co.)


Haben wir etwas übersehen?

E-Mail an news@golem.de


SSD vs. HDD: Die Zeit der Festplatte im Netzwerkspeicher läuft ab
SSD vs. HDD
Die Zeit der Festplatte im Netzwerkspeicher läuft ab

SSDs in NAS-Systemen sind lautlos, energieeffizient und schneller: Golem.de untersucht, ob es eine neue Referenz für Netzwerkspeicher gibt.
Ein Praxistest von Oliver Nickel

  1. Firecuda 120 Seagate bringt 4-TByte-SSD für Spieler

Xbox, Playstation, Nvidia Ampere: Wo bleiben die HDMI-2.1-Monitore?
Xbox, Playstation, Nvidia Ampere
Wo bleiben die HDMI-2.1-Monitore?

Trotz des Verkaufsstarts der Playstation 5 und Xbox Series X fehlt von HDMI-2.1-Displays jede Spur. Fündig werden wir erst im TV-Segment.
Eine Analyse von Oliver Nickel


    Corsair K60 RGB Pro im Test: Teuer trotz Viola
    Corsair K60 RGB Pro im Test
    Teuer trotz Viola

    Corsair verwendet in der K60 Pro RGB als erster Hersteller Cherrys neue preiswerte Viola-Switches. Anders als Cherrys günstige MY-Schalter aus den 80ern hinterlassen diese einen weitaus besseren Eindruck bei uns - der Preis der Tastatur hingegen nicht.
    Ein Test von Tobias Költzsch

    1. Corsair K100 RGB im Test Das RGB-Monster mit der Lichtschranke
    2. Corsair Externes Touchdisplay ermöglicht schnelle Einstellungen
    3. Corsair One a100 im Test Ryzen-Wasserturm richtig gemacht