- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
#define STR(a) #a
#define EXCEPTION_CLASS_CREATE(a) \
class a : public std::exception \
{ \
public: \
a() \
{ \
d(STR(a)"\n"); \
} \
\
a(const char * format, ...) \
{ \
char buffer[ 1024 ]; \
va_list vl; \
va_start( vl, format ); \
vsnprintf( buffer, sizeof(buffer), format, vl ); \
va_end( vl ); \
_str.append( buffer ); \
d(STR(a)" %s\n", buffer); \
} \
\
~a() throw() \
{ \
} \
\
const char* what() const throw() \
{ \
return _str.c_str(); \
} \
private: \
std::string _str; \
};
// ...
EXCEPTION_CLASS_CREATE( InternalException )
bormand 19.03.2013 15:03 # +1
В строке 17 у вас ус отклеился поля неровно проведены.
eth0 19.03.2013 17:06 # 0
TarasB 20.03.2013 13:21 # 0
FrooowMyCoolExtseption("InternalExceptio n")?
bormand 20.03.2013 14:59 # +1
roman-kashitsyn 20.03.2013 15:02 # 0
defecate-plusplus 20.03.2013 15:07 # +1
содержит в себе boost::system::error_code и what
boost::system::error_code и так везде нужен, при этом, самое главное, позволяет в пользовательские категории и пользовательские коды ошибок
а если кидать system_error с помощью BOOST_THROW_EXCEPTION можно еще насобирать дополнительной инфы, типа в каком файле на какой строчке кинулось
bormand 20.03.2013 15:24 # +2
boost::format
P.S. Походу я перешел на темную сторону ;(
defecate-plusplus 20.03.2013 15:38 # +2
roman-kashitsyn 20.03.2013 17:58 # 0
Какие есть варианты с C++? Я пока рассматриваю вариант своего велика с snmp в качестве бэкэнда.
defecate-plusplus 20.03.2013 18:07 # 0
если статистики на килобайт-десяток, то первый вариант мне нравится гораздо больше, потому что он вообще удобный, да и немало геморроя с поддержкой нашей snmp под виндой (писано не мной, я вообще со страхом думаю, если там надо будет что-то править когда-нибудь), и snmp должен быть привязан к чему-либо, что хранит конкретные значения (реестр, например)
если статистики куча, то надо думать
в любом случае, я не припомню готового решения где нибудь в бусте - это лисапед так или иначе будет, либо 3rd party не факт что удобная
defecate-plusplus 20.03.2013 18:23 # 0
roman-kashitsyn 20.03.2013 19:02 # 0
defecate-plusplus 20.03.2013 19:08 # 0