C++的try catch到底能防止什麼錯誤?

來源:互聯網
上載者:User

標籤:

我在.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

C++的try catch到底能防止什麼錯誤?

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.