catch() nicht auswerten



  • Hallo

    Habe ein try catch statement, wobei hier mein eigene Klasse geworfen bzw. abgefangen wird.

    Also so:

    try
    {
        ....
    }
    catch(CMyException &e)
    {
    
    }
    

    nun würde ich gerne in einem bestimmten Fall die Exception nur abfangen nicht auswerten. Dazu habe ich den catch Block leer gelasen. Nun erhalte ich eine Warnung: warning C4101: 'e': Unreferenzierte lokale Variable.
    Wie löse ich das Problem?



  • Hi

    Hmm naja du könntest die Warning unterdrücken. Mit
    #pragma warning(disable: 4101)
    wenn du das umbedingt willst.

    http://msdn.microsoft.com/en-us/library/35whedce.aspx

    Aber ein richtige Lösung ist das nicht. 🙄

    Ich würde eher schauen ob man den leeren "catch-block" vielleicht anderes Lösen kann. Weil da ist ja das Eigentlich das Problem ...


  • Mod

    Möglichkeit 1:

    try
    {
        ....
    }
    catch(CMyException &/*e*/)
    {
    }
    

    Möglichkeit 2:

    try
    {
        ....
    }
    catch(CMyException &e)
    {
        UNUSED_ALWAYS(e);
    }
    


  • Ich würde eher schauen ob man den leeren "catch-block" vielleicht anderes Lösen kann. Weil da ist ja das Eigentlich das Problem ...

    Ja das war ja meine Intension.

    Also danke Herr Richter!



  • Hmm

    Aufs erste hätte ich auch noch kommen können ... 🙂

    Das zweite kannte ich noch nicht ...



  • martin_zi schrieb:

    Ich würde eher schauen ob man den leeren "catch-block" vielleicht anderes Lösen kann. Weil da ist ja das Eigentlich das Problem ...

    Oft ist ein leerer catch Block genau das richtige. Kann man so allgemein nicht sagen.


Log in to reply