Warnungen mit der Syntax e abschalten oder verhindern



  • Man man man....
    [wer mich kennt möge sich jetzt die paar Zeilen denken die hier normal stehen]

    try
    {
      // blösinn
    }
    catch (Exception^)
    {
    }
    


  • War mir auch klar, dass das keinen Mehrwert hat, aber es funktioniert.

    Leider kam ich selber nicht auf die Idee, einfach die Definition wegzulassen. Aber dank deines Hinweises kann ich es in Zukunft besser lösen.



  • habs jetzt ma ohne des e ausprobiert und es hat funktioniert! 😉

    Sorry Knuddlbaer , aber ich hab des echt net gewusst das man das e einfach weglassen darf, denn in meinem Visual C++ buch von Dirk Luis steht es nur mit dem e drinnen.

    Gruß

    The Smart

    P.S: Thema kann geschlossen werden!

    Danke an alle die hier mitgeholfen haben,
    besonderer Danke gilt hierbei Knuddlbaer!



  • Hallo the Smart,

    besonders viel Sinn macht das aber nicht was Du da schreibst und was Dir da vorgeschlagen wird.
    Wann benutzt man einen try und catch Block?
    Wenn man Fehler abfangen möchte.
    Wenn ich mir sicher bin, dass in diesem Codeabschnitt keinen Fehler auflaufen kann, lasse ich den try-catch Block einfach weg.
    Aber ich lass auf sicher nicht die Meldung in den catch-Block laufen ohne sie zu behandeln.

    Guck mal hier...

    http://www.rb-softarticle.com/try-catch Block.aspx

    try
    {
       //Anweisung
    }
    
    catch(Execption1 e)
    {
       MessageBox::Show(e->Message);
    }
    

    Gruß, Doug_HH



  • besonders viel Sinn macht das aber nicht was Du da schreibst und was Dir da vorgeschlagen wird.

    Aber ich lass auf sicher nicht die Meldung in den catch-Block laufen ohne sie zu behandeln.

    Bei dem Satz muss man raten. Ich rate mal, dass Du meinst, das man den Catchblock weg lassen soll. Das hat niemand behauptet.

    Meinst Du, das man die e->Message immer ausgeben ("behandeln") soll, steht Dir in Sachen Exeptionhandling noch ein wenig Arbeit bevor.

    Und Dein hier geposteter Beispielcode ist falsch, da fehlt ein ^



  • Hallo

    Doug_HH schrieb:

    Wenn ich mir sicher bin, dass in diesem Codeabschnitt keinen Fehler auflaufen kann, lasse ich den try-catch Block einfach weg.

    Das würde ich so nicht unterschreiben...

    chrische



  • noch einfacher man schreibt

    try{
        //Alles mögliche
    }
    catch(...){
        //allgemeine meldung
    }
    


  • aber wenn die exception "FormatException" nicht in den allgemeinen block fliegen soll ??

    try
    {
        // irgendwas
    }
    catch(FormatException^)
    {
        // erstmal nichts machen
    }
    catch(NullReferenceException^ ex)
    {
        // keine referenz - message ex ausgeben
    }
    catch(...)
    {
        // nicht abgefangene errors behandeln
    }
    


  • chrische5 schrieb:

    Das würde ich so nicht unterschreiben...

    Wie meinst Du das? Wie Unterschreiben?

    Ich meine so einen Codeabschnitt

    try
    {
    	checkBox1->Checked = true;
    }
    
    catch(Exception^ ex)
    {
    	MessageBox::Show(ex->Message);
    }
    

    Würdes Du das Unterschreiben?! 🙄 Würde das Sinn machen?

    @Knuddlbaer: Jo hatte das ^ vergessen, hatte das eben so schnell im Editor geschrieben.

    Gruß



  • Hallo

    Naja mit dem sicher sein, ist das so eine Sache. Es heißt ja nicht umsonst Ausnahme. Aber du hast natürlich recht, dass dein Beispiel wirklich von einer anderen Welt ist. Ich wollte nur darauf hindeuten, dass man es nicht zu oft weglassen sollte.

    chrische



  • try
    {
    	checkBox1->Checked = true;
    }
    
    catch(Exception^ ex)
    {
    	MessageBox::Show(ex->Message);
    }
    

    An der Stelle kann z.B. eine NullReferenceException oder eine ObectDisposedException, und eine Exception wegen Threadübergreifenden Vorgang fliegen. Es gibt durchaus Situationen, in dem dieser Quellcode Sinn macht.



  • Hallo

    Da war ich wohl zu früh 😃 Ich habe es aber noch nie so geschrieben.

    chrische


Anmelden zum Antworten