#ifndef PROF_THROW_H
#define PROF_THROW_H
#include <iosfwd>
#ifdef NO_EXCEPT
#define THROW(x) { std::cerr << #x << endl; std::abort(); }
#define TRY if(1)
#define CATCH(x) if(0)
#define CALL_WHAT(x) "?"
#define RETHROW
#else
#define THROW(x) throw x;
#define TRY try
#define CATCH catch
#define CALL_WHAT(x) x.what()
#define RETHROW throw
#endif
#endif