C 異常處理基本思想

2021-07-03 15:41:50 字數 1404 閱讀 9539

傳統錯誤處理機制

通過函式返回值來處理錯誤。

異常處理的基本思想

1)c++的異常處理機制使得異常的引發和異常的處理不必在同乙個函式中,這樣底層的函式可以著重解決具體問題,而不必過多的考慮異常的處理。上層呼叫者可以再適當的位置設計對不同型別異常的處理。

2)異常是專門針對抽象程式設計中的一系列錯誤處理的,c++中不能借助函式機制,因為棧結構的本質是先進後出,依次訪問,無法進行跳躍,但錯誤處理的特徵卻是遇到錯誤資訊就想要轉到若干級之上進行重新嘗試,如圖

3)異常超脫於函式機制,決定了其對函式的跨越式回跳。

4)異常跨越函式

異常基本語法

1) 若有異常則通過throw操作建立乙個異常物件並拋擲。

2) 將可能丟擲異常的程式段嵌在try塊之中。控制通過正常的順序執行到達try語句,然後執行try塊內的保護段。

3) 如果在保護段執行期間沒有引起異常,那麼跟在try塊後的catch子句就不執行。程式從try塊後跟隨的最後乙個catch子句後面的語句繼續執行下去。

4) catch子句按其在try塊後出現的順序被檢查。匹配的catch子句將捕獲並處理異常(或繼續拋擲異常)。

5) 如果匹配的處理器未找到,則執行函式terminate將被自動呼叫,其預設功能是呼叫abort終止程式。

6)處理不了的異常,可以在catch的最後乙個分支,使用throw語法,向上扔

7)異常機制與函式機制互不干涉,但捕捉的方式是基於型別匹配。捕捉相當於函式返回型別的匹配,而不是函式引數的匹配,所以捕捉不用考慮乙個拋擲中的多種資料型別匹配問題。

catch**塊必須出現在try後,並且在try塊後可以出現多個catch**塊,以捕捉各種不同型別的拋擲。

異常機制是基於這樣的原理:程式執行實質上是資料實體在做一些操作,因此發生異常現象的地方,一定是某個實體出了差錯,該實體所對應的資料型別便作為拋擲和捕捉的依據。

8)異常捕捉嚴格按照型別匹配

異常捕捉的型別匹配之苛刻程度可以和模板的型別匹配媲美,它不允許相容型別的隱式轉換,比如,拋擲char型別用int型就捕捉不到.例如下列**不會輸出「int exception.」,從而也不會輸出「that』s ok.」 因為出現異常後提示退出

int main()

catch (int)

cout << "that's ok.\n";

return 0;

}

MVP基本思想

mvp的邏輯性思維都在p層,他降低了頁面的耦合度,具備低耦合的特性,mvp的出現使 更具邏輯性 首先我們看到分包的嚴謹性 mvp的結構分析 p層負責整體邏輯並且將m層和v層聯絡起來,m層主要負責 塊,callback將結果集返回p層,v層最後展示檢視 注意以下介面 public inte ce my...

git基本思想

git相比叫傳統的基於檔案svn優勢明顯,主要體現在天然分布式不怕丟失 不以檔案為為基礎,基於git的資料庫 commit雜湊健值檔案 的版本管理,分支 標籤等操作飛速,而不是緩慢地檔案和目錄操作 git下每個人都有乙個獨特的工作區和分支,不必實時和中心伺服器同步就可以 帶有社交性質的基於fork ...

敏捷開發基本思想

敏捷開發是由一些業界專家針對一些企業現狀提出了一些讓軟體開發團隊具有快速工作 響應變化能力的價值觀和原則,並於2001初成立了敏捷聯盟。他們正在通過親身實踐以及幫助他人實踐,揭示更好的軟體開發方法。通過這項工作,他們認為 個體和互動 勝過 過程和工具 可以工作的軟體 勝過 面面俱到的文件 客戶合作 ...