Доброго времени суток.
Подскажите пожалуйста может в std итератор (к примеру vector) выкидывать exception, как это проверить?какой имеено exception? как вообще от этого застраховаться.
Пример кода:
for (std::vector<XmlHelper::XmlNode>::iterator node = nodes.begin();
node != nodes.end(); node++)
{
try
{
std::string str=node->getContent();
}
catch (...)
{
.........
}
}
const char* XmlNode::getContent() const
{
if (!m_node)
{
return 0;
}
xmlNode* node = m_node->children;
while (node)
{
if (XML_TEXT_NODE==node->type)
{
char * str = reinterpret_cast<char*>(node->content);
if (str)
{
#ifdef DISABLE_CUSTOM_ESCAPE
return str;
#else
return XmlUtil::unescapeString(str);
#endif
}
}
node = node->next;
}
return NULL;
}
getContent() = не выкидывает exception
а std::string str=node->getContent(); выкидывает
Почему? как отследить его?
Заранее огромное спасибо!