#ifndef __EXCEPTION_FORMAT_H__ #define __EXCEPTION_FORMAT_H__ /** * 例外の記述方法を定めたヘッダ * */ #ifndef ENABLE_EXCEPTION_THROW #define ENABLE_EXCEPTION_THROW 1 #else #define ENABLE_EXCEPTION_THROW 0 #endif #if ENABLE_EXCEPTION_THROW #include #include #define TRY(procedure) \ try{ \ procedure; \ } #define CATCH(exception, procedure) \ catch( std::exception except ){ \ procedure; \ } #define ASSERT_THROW(expression, exception) \ if(expression){ \ throw exception; \ } #else #include #define TRY(procedure) {procedure} #define CATCH(exception, procedure) /*{ procedure }*/ #define ASSERT_THROW(expression, exception) assert(!(expression)) #define throw(exception) /*throw(exception)*/ #endif #endif /* __EXCEPTION_FORMAT_H__ */