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. KDO Service GmbH, Oldenburg
  2. SENSIS GmbH, Viersen bei Mönchengladbach
  3. HETTENBACH GMBH & CO KG, Heilbronn
  4. wenglorMEL GmbH, Eching bei München

Golem pur
  • Golem.de ohne Werbung nutzen

Anzeige
Top-Angebote
  1. (Bis zu 40 Prozent auf ausgewählte Notebooks, Monitore, PCs, Hardware, Smartphones, Zubehör und...
  2. (u. a. ASUS ROG Strix XG43VQ für 799€, ASUS VG255H für 139,90€, Thermaltake View 21 Tempered...
  3. (u. a. Samsung Galaxy Watch Active 2 Under Armour Edition 44 mm Schwarz für 179,34€ und 40 mm...


Haben wir etwas übersehen?

E-Mail an news@golem.de


Core i7-1185G7 (Tiger Lake) im Test: Gut gebrüllt, Intel
Core i7-1185G7 (Tiger Lake) im Test
Gut gebrüllt, Intel

Dank vier äußerst schneller CPU-Kerne und überraschend flotter iGPU gibt Tiger Lake verglichen zu AMDs Ryzen 4000 eine gute Figur ab.
Ein Test von Marc Sauter

  1. Tiger Lake Überblick zu Intels 11th-Gen-Laptops
  2. Project Athena 2.0 Evo-Ultrabooks gibt es nur mit Windows 10
  3. Ultrabook-Chip Das kann Intels Tiger Lake

Verkehrswende: Zaubertechnologie statt Citybahn
Verkehrswende
Zaubertechnologie statt Citybahn

In Wiesbaden wird um den Bau einer Straßenbahn gestritten, eine Bürgerinitiative kämpft mit sehr kuriosen Argumenten dagegen.
Eine Recherche von Hanno Böck

  1. Fernbus Roadjet mit zwei WLANs und Maskenerkennung gegen Flixbus
  2. Mobilität Wie sinnvoll sind synthetische Kraftstoffe?

Java 15: Sealed Classes - Code-Smell oder moderne Erweiterung?
Java 15
Sealed Classes - Code-Smell oder moderne Erweiterung?

Was bringt das Preview Feature aus Java 15, wie wird es benutzt und bricht das nicht das Prinzip der Kapselung?
Eine Analyse von Boris Mayer

  1. Java JDK 15 geht mit neuen Features in die General Availability
  2. Java Nicht die Bohne veraltet
  3. JDK Oracle will "Schmerzen" von Java beheben