微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

延迟end迭代器是否抛出?

如何解决延迟end迭代器是否抛出?

我正在尝试捕获此异常,但无法做到这一点:

#include <unordered_map>
#include <iostream>
#include <exception>


int main() {
    std::unordered_map<int,std::string> x;
    auto it = x.end();
    try { *it; }
    catch (const std::exception& exception) {
        std::cout << "BIG FAT ERROR" << std::endl;
    }
}

解决方法

未指定引发异常。它就是Undefined Behaviour。含义;如果这样做,则编译器对其生成的代码没有义务,并且整个程序无效,并且编译器也没有义务告诉您。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。