快速会用c++异常捕获机制(一个程序几行代码)
2012-10-30 14:09
218 查看
整理了网上流传的经典三角形代码,添加了自己理解的内容。
最终一个目的,就是先会用c++中的try catch 块。然后深入领悟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,海伦公式常量d float 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; }
相关文章推荐
- SDL入门教程(五):6、对C++异常机制的思考,代码重写
- 程序异常捕获一个不留
- 一个c/c++程序是怎么从代码到可执行文件的
- 每天一个C++小程序(十五)--快速排序
- C++异常机制的实现方式和开销分析 (大图,编译器会为每个函数增加EHDL结构,组成一个单向链表,非常著名的“内存访问违例”出错对话框就是该机制的一种体现)
- 编写高质量代码改善C#程序的157个建议——建议66:正确捕获多线程中的异常
- SDL入门教程(五):6、对C++异常机制的思考,代码重写
- 从零开始学C++之异常(二):程序错误、异常(语法、抛出、捕获、传播)、栈展开
- C++异常, 一个测试异常传递切割问题的程序
- 从零开始学C++之异常(二):程序错误、异常(语法、抛出、捕获、传播)、栈展开
- [转贴] 从零开始学C++之异常(二):程序错误、异常(语法、抛出、捕获、传播)、栈展开
- 每天一个c++小程序(1):快速排序
- .net 程序发生了一个不可捕获的异常
- 编写高质量代码改善C#程序的157个建议——建议65:总是处理未捕获的异常
- 华为公司的笔试题:写一个Stack,注意处理异常。这里给出一个exception c++上讨论的一个简易版本代码。
- 一个C++程序重构的例子——糟糕的代码
- C/C++做的一个简单界面程序扩充,向指定窗口发送消息源代码
- 一个简单关于学生成绩管理的C++程序代码,但是对于拷贝析构函数目前还是不知其作用何在
- .NET 异常捕获机制的小技巧应用(实例:端口扫描程序)
- 【C++ 快速入门】一个使用IO库的程序