Listing 11: Handy exception macros
// xcept.h: Useful throw macros #include <exception> #include <string> // Macro trick to quote a number: #define str_(x) #x #define xstr_(x) str_(x) // Macro for convenient exception throwing // (includes standard message, file, line #) #define Throw(Type, cod) \ throw Type ## _Exception(Type ## _Exception:: ## cod, \ std::string(__FILE__ ## ":Line " ## xstr_(__LINE__))) #define Throw2(Type, cod, txt) \ throw Type ## _Exception(Type ## _Exception:: ## cod, \ txt + std::string(":" ## \ __FILE__ ## ":Line " ## \ xstr_(__LINE__))) //End of File