Try..catch - Unterschied MSVC 2002/2008



  • Hallo,

    ich habe ein älteres Projekt von Visual Studio 2002 auf 2008 konvertiert. In 2008 stürzt mir das Programm nun mit einer unbehandelten Exception innerhalb eines try..catch-Blocks ab.

    try
    {
        ((Obj*)NULL)->func(); // Null-Pointer-Zugriff, somit Exception
    }
    catch(...)
    {
        tuwas();
    }
    

    Ich habe es mit dem Beispiel oben probiert (nur eben mit echten Funktionen des Projekts. Einen Breakpoint in dem catch-Teil erreiche ich nicht und der Zugriff auf NULL erzeugt eben wie gesagt eine unbehandelte Ausnahme.

    Jemand eine Idee, woran das liegen könnte?

    MfG
    Holger



  • Wenn Du die "Exception-Handling" in VS2002 nicht *explizit* gesetzt hast (sondern "Inherit"), so wird in VS2008 das neue "Default" Exception-Handling_model "/EHsc" gesetzt, was *nur* noch C++-Exceptions abfängt.
    Du musst es wieder umstellen nach "/EHa"! Was Default bis 2003 war!



  • Danke! Das hat das Problem gelöst.

    MfG
    Holger


Log in to reply