我正在用 C++ 围绕 libxml2 编写一个小包装器,并且正在尝试解决如何处理错误。现在,假设我只想将它们打印出来。这是我目前所拥有的:
我的错误处理功能:
void foo(void *ctx, const char *msg, ...) {
cout << msg << endl;
return;
}
像这样初始化:
xmlGenericErrorFunc handler = (xmlGenericErrorFunc)foo;
initGenericErrorDefaultFunc(&handler);
但是,如果我解析错误的 XPath,我会得到以下输出:
%s
没有错误处理代码,我得到这个:
XPath 错误:无效的表达式 //.@foobar ^
显然,最终我的错误处理不仅仅是打印出错误消息(它会将它记录到数据库或其他东西),但现在 - 我怎样才能得到那个错误字符串?