Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
Sep 19, 2009, 11:17:51 PM (15 years ago)
Author:
rgrieder
Message:

Added Exception::handleMessage() (copy from Game::getExceptionMessage) function that returns the exception message (if retrievable) when catching with "…"
and adjusted some exception handlers.

Location:
code/trunk/src/libraries/util
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • code/trunk/src/libraries/util/CMakeLists.txt

    r5738 r5747  
    7474    "UTIL_SHARED_BUILD"
    7575  LINK_LIBRARIES
     76    ${CEGUI_LIBRARY}
    7677    ${OGRE_LIBRARY}
    7778  SOURCE_FILES
  • code/trunk/src/libraries/util/Exception.cc

    r5738 r5747  
    3434
    3535#include "Exception.h"
     36#include <CEGUIExceptions.h>
    3637
    3738namespace orxonox
     
    9394        return getDescription().c_str();
    9495    }
     96
     97    /*static*/ std::string Exception::handleMessage()
     98    {
     99        try
     100        {
     101            // rethrow
     102            throw;
     103        }
     104        catch (const std::exception& ex)
     105        {
     106            return ex.what();
     107        }
     108        catch (const CEGUI::Exception& ex)
     109        {
     110#if CEGUI_VERSION_MAJOR == 0 && CEGUI_VERSION_MINOR < 6
     111            return GeneralException(ex.getMessage().c_str()).getDescription();
     112#else
     113            return GeneralException(ex.getMessage().c_str(), ex.getLine(),
     114                ex.getFileName().c_str(), ex.getName().c_str()).getDescription();
     115#endif
     116        }
     117        catch (...)
     118        {
     119            return "Unknown exception";
     120        }
     121    }
    95122}
  • code/trunk/src/libraries/util/Exception.h

    r5738 r5747  
    8383        virtual const std::string& getFilename()        const { return this->filename_; }
    8484
     85        /**
     86        @brief
     87            Retrieves information from an exception caught with "..."
     88            Works for std::exception and CEGUI::Exception
     89        @remarks
     90            Never ever call this function without an exception in the stack!
     91        */
     92        static std::string handleMessage();
     93
    8594    protected:
    8695        std::string description_;             //!< User typed text about why the exception occurred
Note: See TracChangeset for help on using the changeset viewer.