c++異常:拋出std:: string

c++異常:拋出std:: string

我想拋出一個異常,當我的C++方法遇到奇怪的東西,無法恢復。 拋出一個std::string指針可行嗎? 以下是我期待的事情: void Foo::Bar(){if(!QueryPerformanceTimer(&m_baz)){throw new std::string("it's the end of the world!");}} void…


c++ 異常與斷言?

可能重複: 通過斷言或例外的合同測試設計? 在決定使用異常而不是斷言時,是否遵循經驗法則(反之亦然)。 現在我只會拋出我認為會在用戶端運行時發生的事情(如套接字或文件錯誤)。 我使用的幾乎所有其他東西都斷言。 另外,如果我要拋出一個斷言,拋出什麼是一個很好的標準對象? IIRC有std:: logic_error但是這不是一個好的對象嗎? 我會為丟失的文件或意外輸入(例如從命令行而不是…


c++ 如何拋出良好的例外?

我聽說你不應該拋出一個字符串,因為缺乏信息,你會發現你不希望看到的異常。 什麼是拋出異常的好習慣? 你是否繼承了一個基本的異常類? 你有很多例外還是很少? 你做MyExceptionClass&或者const MyExceptionClass&? 等我也知道異常不應該在析構函數中拋出 我會補充說,我了解設計合同和何時拋出異常。 我在問我應該如何拋出異常。…


Google C++風格指南的無例外規則; STL?

谷歌的C++風格指南說“我們不使用例外”。 關於異常的使用,樣式沒有提到STL。 由於STL分配器可能會失敗,它們如何處理容器拋出的異常? 如果他們使用STL,呼叫者如何獲知分配失敗? 像push_back()或map operator[]這樣的STL方法不會返回任何狀態代碼。 如果他們不使用STL,他們使用什麼容器實現?…



c++ 單個“拋出”聲明的作用是什麼?

這些天,我一直在閱讀很多C++ FAQ,特別是這個頁面 。 通過閱讀本節,我發現了一種“技術”,作者稱之為“異常調度程序”,允許某人將所有異常處理分組到一個方便的函數中: void handleException(){try{throw;// ?!}catch(MyException& e){//...code to handle MyExc…


C++:拋出異常,使用“新”或不?

用throw new FoobarException(Baz argument);是否合適throw new FoobarException(Baz argument); 或throw FoobarException(Baz argument); ? 在捕捉時,我總是使用catch(FoobarException& e) “以防萬一”,但是我不可能在C++中使用新的或者不使用新的或者不是使用…




stdexcept linux handling exception example cpp catch throw common not