Я пишу небольшую обертку вокруг libxml2 на C++ и пытаюсь понять, как обрабатывать ошибки. А пока, допустим, я просто хочу их распечатать. Вот что у меня есть на данный момент:
Моя функция обработки ошибок:
void foo(void *ctx, const char *msg, ...) {
cout << msg << endl;
return;
}
Инициализировал так:
xmlGenericErrorFunc handler = (xmlGenericErrorFunc)foo;
initGenericErrorDefaultFunc(&handler);
Однако, если я разбираю неверный XPath, я получаю следующий вывод:
%s
Без кода обработки ошибок я получаю следующее:
XPath error : Invalid expression //.@foobar ^
Очевидно, что в конечном итоге моя обработка ошибок будет делать больше, чем просто распечатывать сообщение об ошибке (оно будет регистрировать его в базе данных или что-то в этом роде), но на данный момент - как я могу получить эту строку ошибки?