《C面向對象程序設計》課件第8章.ppt
《《C面向對象程序設計》課件第8章.ppt》由會員分享,可在線閱讀,更多相關《《C面向對象程序設計》課件第8章.ppt(62頁珍藏版)》請在裝配圖網上搜索。
1、第14章 C++工具,14.1 異常處理 14.2 命名空間 14.3 使用早期的函數庫,在C++發(fā)展的后期,有時C++編譯系統(tǒng)根據實際工作的需要,增加了一些功能,作為工具來使用,其中主要有模板(包括函數模板和類模板)、異常處理、命名空間和運行時類型識別,以幫助程序設計人員更方便地進行程序的設計和調試工作。1997年ANSI C++委員會將它們納入了ANSI C++標準,建議所有的C++編譯系統(tǒng)都能實現這些功能。這些工具是非常有用的,C++的使用者應當盡量使用這些工具。,程序編制者不僅要考慮程序沒有錯誤的理想情況,更要考慮程序存在錯誤時的情況,應該能夠盡快地發(fā)現錯誤,消除錯誤。 程序中常見的錯
2、誤有兩大類: 語法錯誤和運行錯誤。在編譯時,編譯系統(tǒng)能發(fā)現程序中的語法錯誤。 有的程序雖然能通過編譯,也能投入運行。但是在運行過程中會出現異常,得不到正確的運行結果,甚至導致程序不正常終止,或出現死機現象。這類錯誤比較隱蔽,不易被發(fā)現,往往耗費許多時間和精力。這成為程序調試中的一個難點。,14.1 異常處理 14.1.1 異常處理的任務,在設計程序時,應當事先分析程序運行時可能出現的各種意外的情況,并且分別制訂出相應的處理方法,這就是程序的異常處理的任務。 在運行沒有異常處理的程序時,如果運行情況出現異常,由于程序本身不能處理,程序只能終止運行。如果在程序中設置了異常處理機制,則在運行情況出現
3、異常時,由于程序本身已規(guī)定了處理的方法,于是程序的流程就轉到異常處理代碼段處理。用戶可以指定進行任何的處理。 需要說明,只要出現與人們期望的情況不同,都可以認為是異常,并對它進行異常處理。因此,所謂異常處理指的是對運行時出現的差錯以及其他例外情況的處理。,在一個小的程序中,可以用比較簡單的方法處理異常。但是在一個大的系統(tǒng)中,如果在每一個函數中都設置處理異常的程序段,會使程序過于復雜和龐大。因此,C++采取的辦法是: 如果在執(zhí)行一個函數過程中出現異常,可以不在本函數中立即處理,而是發(fā)出一個信息,傳給它的上一級(即調用它的函數),它的上級捕捉到這個信息后進行處理。如果上一級的函數也不能處理,就再傳
4、給其上一級,由其上一級處理。如此逐級上送,如果到最高一級還無法處理,最后只好異常終止程序的執(zhí)行。,14.1.2 異常處理的方法,這樣做使異常的發(fā)現與處理不由同一函數來完成。好處是使底層的函數專門用于解決實際任務,而不必再承擔處理異常的任務,以減輕底層函數的負擔,而把處理異常的任務上移到某一層去處理。這樣可以提高效率。 C++處理異常的機制是由3個部分組成的,即檢查(try)、拋出(throw)和捕捉(catch)。把需要檢查的語句放在try塊中,throw用來當出現異常時發(fā)出一個異常信息,而catch則用來捕捉異常信息,如果捕捉到了異常信息,就處理它。,例14.1 給出三角形的三邊a,b,c,
5、求三角形的面積。只有a+bc,b+ca,c+ab時才能構成三角形。設置異常處理,對不符合三角形條件的輸出警告信息,不予計算。 先寫出沒有異常處理時的程序: #include #include using namespace std; int main( ) double triangle(double,double,double); double a,b,c; cinabc; while(a0 , double triangle(double a,double b,double c) double area; double s=(a+b+c)/2; area=sqrt(s*(s-a)*(s-b
6、)*(s-c)); return area; 運行情況如下: 6 5 4(輸入a,b,c的值) 9.92157 (輸出三角形的面積) 1 1.5 2 (輸入a,b,c的值) 0.726184 (輸出三角形的面積) 1 2 1 (輸入a,b,c的值) 0 (輸出三角形的面積,此結果顯然不對,因為不是三角形) 1 0 6 (輸入a,b,c的值) (結束),修改程序,在函數traingle中對三角形條件進行檢查,如果不符合三角形條件,就拋出一個異常信息,在主函數中的try-catch塊中調用traingle函數,檢測有無異常信息,并作相應處理。修改后的程序如下: #
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
5. 裝配圖網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 川渝旅游日記成都重慶城市介紹推薦景點美食推薦
- XX國有企業(yè)黨委書記個人述責述廉報告及2025年重點工作計劃
- 世界濕地日濕地的含義及價值
- 20XX年春節(jié)節(jié)后復工安全生產培訓人到場心到崗
- 大唐女子圖鑒唐朝服飾之美器物之美繪畫之美生活之美
- 節(jié)后開工第一課輕松掌握各要點節(jié)后常見的八大危險
- 廈門城市旅游介紹廈門景點介紹廈門美食展示
- 節(jié)后開工第一課復工復產十注意節(jié)后復工十檢查
- 傳統(tǒng)文化百善孝為先孝道培訓
- 深圳城市旅游介紹景點推薦美食探索
- 節(jié)后復工安全生產培訓勿忘安全本心人人講安全個個會應急
- 預防性維修管理
- 常見閥門類型及特點
- 設備預防性維修
- 2.乳化液泵工理論考試試題含答案