git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@70 67173fc5-114c-0410-ac8e-9d2fd5bffc1f
43 lines
877 B
C++
43 lines
877 B
C++
#include <cppunit/Exception.h>
|
|
#include <cppunit/extensions/TypeInfoHelper.h>
|
|
#include "DefaultProtector.h"
|
|
|
|
|
|
CPPUNIT_NS_BEGIN
|
|
|
|
|
|
bool
|
|
DefaultProtector::protect( const Functor &functor,
|
|
const ProtectorContext &context )
|
|
{
|
|
try
|
|
{
|
|
return functor();
|
|
}
|
|
catch ( Exception &failure )
|
|
{
|
|
reportFailure( context, failure );
|
|
}
|
|
catch ( std::exception &e )
|
|
{
|
|
std::string shortDescription( "uncaught exception of type " );
|
|
#if CPPUNIT_USE_TYPEINFO_NAME
|
|
shortDescription += TypeInfoHelper::getClassName( typeid(e) );
|
|
#else
|
|
shortDescription += "std::exception (or derived).";
|
|
#endif
|
|
Message message( shortDescription, e.what() );
|
|
reportError( context, message );
|
|
}
|
|
catch ( ... )
|
|
{
|
|
reportError( context,
|
|
Message( "uncaught exception of unknown type") );
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
|
|
CPPUNIT_NS_END
|