首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >级联Poco异常

级联Poco异常
EN

Stack Overflow用户
提问于 2014-08-29 17:00:17
回答 1查看 1.2K关注 0票数 1

我尝试在Poco中级联异常。

代码语言:javascript
复制
void debug() {
try {
    ...
    xmlFile.parseDocument(*_sim);
    ...
    }
} catch (Poco::Exception& error) {
    std::cout << "I'm here" << endl;
    std::cout << "Error : " << error.displayText() << std::endl;
}
}

void XMLParser::parseDocument(Manager &manager) {
...
try {
    Poco::XML::NodeList* policyList = root->childNodes();
    for (uint node=0; node < policyList->length(); node++)
        if (policyList->item(node)->hasChildNodes())
            manager.insertRule(parseRule(node, policyList->item(node)));
} catch(Poco::Exception& error) {
    std::cout << "Error : " << error.displayText() << std::endl;
    error.rethrow();
}
}

Rule* XMLParser::parseRule(int flowID, Poco::XML::Node* rule) throw() {
    ....
    if (tLink._srcPort < 0)
        throw new Poco::Exception("Source Port isn't valid");
    ....
}

抛出最深的异常,但它不会继续外部函数。该程序被终止。为什么?

EN

回答 1

Stack Overflow用户

发布于 2015-06-15 16:25:19

你抛出一个Poco::Exception指针,所以你不能通过引用来捕获它。删除“new”。这应该是可行的:

代码语言:javascript
复制
....
if (tLink._srcPort < 0)
    throw Poco::Exception("Source Port isn't valid");
....
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25564990

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档