首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

快速会用c++错误捕获机制(一个程序几行代码)

2012-11-21 
快速会用c++异常捕获机制(一个程序几行代码)整理了网上流传的经典三角形代码,添加了自己理解的内容。最终一

快速会用c++异常捕获机制(一个程序几行代码)

整理了网上流传的经典三角形代码,添加了自己理解的内容。

最终一个目的,就是先会用c++中的try  catch 块。然后深入领悟c++的错误机制。

在这里拿出来,想与大家分享,有什么写的不对的地方,或者什么写的欠妥的地方,

或者有什么可以更好地改进的地方,都很欢迎提出来。

文在这里也同样不胜感激之情。

// AbnomalTest.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include <iostream>#include <afx.h>using namespace std;class triangle  //定义一个三角形的类{public :float a,b,c,d;  //三角形三边a,b,c,海伦公式常量dfloat s;        //三角形面积public:triangle(){}triangle(float a1,float b1,float c1){  a=a1;  b=b1;  c=c1;}//判断是否是三角形string judgment() /*throw ( string )这里叫做异常的规范*/{  string  temp;  int TempNum;  if((a+b)<c ||(a+c)<b || (c+b)<a)   {TempNum=9;temp="不是三角形";wcout<<temp.c_str ()<<endl;throw(TempNum);     } /*用throw抛出,并不是在控制台可视输出,而是专门用catch来接着,然后做处理*/  else  {   /*locale loc("chs");          wcout.imbue(loc);*/  temp="是三角形";  cout<<temp.c_str()<<endl;  throw(temp);   }}void dimension()//计算面积 {  d=(a+b+c)/2;        //海伦公式  s=sqrt(d*(d-a)*(d-b)*(d-c));}};int _tmain(int argc, _TCHAR* argv[]){triangle a(7,2,3);//仅传值,初始化 try{a.judgment();a.dimension();cout<<"三角形a的面积为: "<<a.s<<endl;}//catch (string & TempErr)   //接受了,接受了,请注意,我还是定义了一个 string形的来接受的。//{// 要么用这个自己定义的catch块要么使用万能捕获块,好像两个不能同时使用//    wcout<<TempErr.c_str()<<endl;//}catch(...){        /*locale loc("chs");//要么使用这个块输出,要么使用另一个输出    wcout.imbue(loc);   wcout<<L"万能捕获"<<endl;*/cout<<"万能捕获"<<endl;}return 0;}

 

热点排行