![C程序設(shè)計教學(xué)課件:CHAPTER 13 EXCEPTION HANDLING_第1頁](http://file4.renrendoc.com/view/4a9b61a1df28a6f82d879c0022868fd7/4a9b61a1df28a6f82d879c0022868fd71.gif)
![C程序設(shè)計教學(xué)課件:CHAPTER 13 EXCEPTION HANDLING_第2頁](http://file4.renrendoc.com/view/4a9b61a1df28a6f82d879c0022868fd7/4a9b61a1df28a6f82d879c0022868fd72.gif)
![C程序設(shè)計教學(xué)課件:CHAPTER 13 EXCEPTION HANDLING_第3頁](http://file4.renrendoc.com/view/4a9b61a1df28a6f82d879c0022868fd7/4a9b61a1df28a6f82d879c0022868fd73.gif)
![C程序設(shè)計教學(xué)課件:CHAPTER 13 EXCEPTION HANDLING_第4頁](http://file4.renrendoc.com/view/4a9b61a1df28a6f82d879c0022868fd7/4a9b61a1df28a6f82d879c0022868fd74.gif)
![C程序設(shè)計教學(xué)課件:CHAPTER 13 EXCEPTION HANDLING_第5頁](http://file4.renrendoc.com/view/4a9b61a1df28a6f82d879c0022868fd7/4a9b61a1df28a6f82d879c0022868fd75.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、C+ Programming CHAPTER 13 EXCEPTION HANDLING 113.1 Exception Handling13.2 Exception Matching 13.3 Constructors and Destructors in Exception Handling213.1 Exception HandlingAn exception is a run-time error caused by some abnormal condition.In C+, a function f can recognize conditions that identify ex
2、ceptions and then signal that an exception has occurred. This signaling process is called throwing an exception.313.1 Exception HandlingOnce thrown, an exception can be caught or handled by a function that invokes f by using a catch block. A catch block is an exception handler that occurs after a tr
3、y block, which is used to indicate interest in exceptions. 413.1 Exception Handling f() h()g()error spreadingfunction invokedcatching and handling errorcause and throw an errorWhy h( ) doest rectify the error?int *p=new int1000513.1 Exception HandlingThe perfect objective was to map exceptions to so
4、me other form of error propagation should a designer choose to do so.Not that it was always best to do so, but that it could be done.613.1 Exception Handlingthrowing exception .throw expression;.catching and handling exceptiontry expressioncatch(exception type) expressioncatch(exception type) expres
5、sion .713.1 Exception HandlingThe keyword throw creates an object that isnt there under normal program execution. Then the object is, in effect, “returned” from the function, even though that object type isnt normally what the function is designed to return.Each catch clause (exception handler) is l
6、ike a little function that takes a single argument of one particular type.813.1 Exception HandlingRemarks:A) Exception is made and thrown by throw block. B) The code segment that could cause an exception will be in the try block. C) The catch block will not invoked if there is not any exception in t
7、ry block, and the code next to the last catch block will be invoked.913.1 Exception HandlingD) If an exception is thrown, type-matched catch block will catch and handle it. E) If no catch block is matched, the function terminate will be invoked automatically and the program is aborted.1013.1 Excepti
8、on HandlingExample:#includeint Div(int x,int y);void main() try cout5/2=Div(5,2)endl;cout8/0=Div(8,0)endl;cout7/1=Div(7,1)endl; catch(int) coutexcept of deviding zero.n; coutthat is ok.n;int Div(int x,int y) if(y=0) throw y; return x/y;Output:5/2=2except of deviding zero.that is ok.Only the type of
9、“y” is matter!1113.2 Exception MatchingYou can list all types of exceptions in the definition of function.Example:void fun( ) throw(A,B,C,D);You can also define a function that can throw any type of exceptions.Example:void fun( ) throw( );1213.3 Constructors and Destructors in Exception HandlingThe
10、C+ Spirit:“ Trust the programmer”.An object comes into being only after it as been constructed.1313.3 Constructors and Destructors in Exception HandlingIf an exception is matched by the catch block, some thing will be done to handle it.A) Initializing the arguments. B) All the objects that have been
11、 constructed in the try block will be destructed automatically. C) The code segment next to the last catch block will be invoked.1413.3 Constructors and Destructors in Exception HandlingExample:class X public:Aa;Bb;Cc;void main( )X x;abc1513.3 Constructors and Destructors in Exception HandlingExampl
12、e:#include void MyFunc( void );class Expt public: Expt( ); Expt( ); const char *ShowReason( ) const return Expt; ;1613.3 Constructors and Destructors in Exception Handlingclass Demo public:Demo( );Demo( );Demo:Demo( ) coutConstructing Demo.endl;Demo:Demo( ) coutDestructing Demo.endl;1713.3 Construct
13、ors and Destructors in Exception Handlingvoid MyFunc( ) Demo D; coutThrow Expt in MyFunc() endl; throw Expt();int main( ) coutIn main function endl; try coutIn try block, MyFunc( ) is invoked endl; MyFunc( ); There will be some errors.1813.3 Constructors and Destructors in Exception Handling catch(
14、Expt E ) coutIn catch block endl; coutCatching the Expt ; coutE.ShowReason()endl; catch( char *str ) coutCatching the other exception:strendl; coutBack to main function endl; return 0;1913.3 Constructors and Destructors in Exception HandlingOutput:In main functionIn try block, MyFunc() is invokedCon
15、structing Demo.Throw Expt in MyFunc()Destructing Demo.In catch blockCatching the Expt ExptBack to main function20Exercise#include int main()void f1();tryf1();catch(double)cout“OK0!”endl;cout“end0”endl;lreturn 0;21void f1()void f2();tryf2();catch(char)cout“OK1!”endl;cout“end1”endl;l22void f2()void f3();tryf3();catch(int)cout“OK2!”endl;cout“end2”endl;l23void f3()double d=0;trythrow d;catch(float)cout“OK3!”endl;cout“end3”endl;l24mainf1()f2()f3()throw dcatch(char)not matchcatch(int)not matchca
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 真空絕熱材料行業(yè)市場分析
- 制藥原料采購合同范本
- 做商務(wù)合同范本
- 2025年度數(shù)據(jù)中心制冷機電安裝合同
- 保潔用品轉(zhuǎn)讓合同范例
- ktv設(shè)備售后合同范本
- 借條可以轉(zhuǎn)讓合同范本
- 2025年新型節(jié)能中央空調(diào)采購安裝與售后服務(wù)合同范本
- 養(yǎng)殖水管銷售合同范本
- 共同經(jīng)營股東合同范本
- GB/T 26189.2-2024工作場所照明第2部分:室外作業(yè)場所的安全保障照明要求
- 七上 U2 過關(guān)單 (答案版)
- 四川省地圖模板含市縣圖課件
- 學(xué)校物業(yè)管理宿舍管理方案995
- 荔枝依舊年年紅
- 小學(xué)語文必備文學(xué)常識???00題匯總(含答案)
- 英語人教版高中必修三(2019新編)第一單元教案
- GB 9706.1-2020醫(yī)用電氣設(shè)備第1部分:基本安全和基本性能的通用要求
- 口腔頜面外科:第十六章-功能性外科與計算機輔助外科課件
- 植物工廠,設(shè)計方案(精華)
- 貸款新人電銷話術(shù)表
評論
0/150
提交評論