目的:正確理解c++的異常處理機制
學習異常處理的定義及執行過程
內容:定義一個異常類CException ,有成員函數Reason(),用來顯示異常的類型,在子函數中觸發異常,在主程式中處理異常,觀察程式的執行流程。
三 實驗任務:在類CException的成員函數Reason()中用cout顯示異常的類型,在函數fn1()中用throw觸發異常,在主函數的try模板中調用 fn1(),在catch模板中捕獲異常。
演算法:
先根據要求定義一個類CException,然後有成員函數Reason()來顯示錯誤資訊,然後定義一個函數來完成除法功能,觸發條件為除數為0,然後定義主函數來處理異常。
程式:
#include<iostream.h>
class CException
{
private:
int dividend;
int divisor;
public:
void Reason(){cout<<"0不能做除數!"<<endl;}
};
float fn1(int dividend,int divisor)
{
if(divisor==0)
throw "錯誤!";
else
return float(dividend)/divisor;
}
void main()
{
CException object;
int dividend,divisor;
float quotient;
cout<<"請輸入除數與被除數:";
cin>>dividend>>divisor;
try{
quotient=fn1(dividend,divisor);
cout<<"商是:"<<quotient<<endl;
}catch (char *exceptionstring)
{cout<<exceptionstring<<endl;
object.Reason();
}
}
文章出處:http://www.diybl.com/course/3_program/c++/cppxl/2008215/99845.html