• C++的try catch到底能防止什么错误?


    我在.h文件里定义:
        LoadingWidget* w;
    然后.cpp文件里定义:

    void MyClass::ModifyTask()
    {
        // w = new LoadingWidget(); // 忘了生成实例
        try {
            w->show();    
        } catch (int e) {
            QMessageBox::warning(this, ("error"), ("Please input server address!"));
        }
    }
    尽管写上了try catch,程序照样崩溃。够差劲的。是我哪里没明白吗?我在另一个语言里这样写就不会出问题,程序不会崩溃。

    ------------------------------------------------------------------------------------

    是VC吧? 我以前看到它对try catch 默认不支持了,需要修改设置的
    http://blog.csdn.net/yu444/article/details/5612714

    ------------------------------------------------------------------------------------

    C++ 异常 是用来捕捉你在代码内中用throw抛出的异常的。像非法地址、除数为零等等,都不属于C++异常!!

    不同的语言,你不能这么去类比。你不能要求一个C++编译器去支持C++标准没有要求的东西。尽管长期以来MSVC对C++标准的支持非常差劲,但这部分应该没什么问题。更何况,它还通过自己的扩展提供了结构化异常的支持。

    参考:http://www.qtcn.org/bbs/read-htm-tid-57906.html

  • 相关阅读:
    JAVA设计模式之单例模式
    JAVA设计模式之单例模式
    数据库连接池
    数据库连接池
    DbUtils操作数据库
    DbUtils操作数据库
    Hadoop 问题之 Linux服务器jps报process information unavailable
    echarts ——纵坐标赋值
    echarts ——div没有设置样式图表就展示不出来!
    Elasticsearch+spring boot(一)
  • 原文地址:https://www.cnblogs.com/findumars/p/4603139.html
Copyright © 2020-2023  润新知