异常浅析
来源:互联网 发布:超星网络课答案 编辑:程序博客网 时间:2024/06/03 20:04
C++异常是对程序运行过程中发生的异常情况的一种响应,异常提供了将控制权从程序的一部分传递到另一部分的途径。异常处理由3部分组成:
引发异常;
使用处理程序捕获异常;
使用try块。
程序在出现问题时会引发异常。
try{ 可能引发异常的函数fun(); 没有异常,执行的代码;}catch(类型声明){ 异常处理代码;}fun(){ 代码; throw "xxxx";}
如:
try{ z=hmean(x,y);}catch(const char* s){ std::cout<<s<<std::endl; continue;}double hmean(double a,double b){ if(a==-b) throw "Bad hmean() argument: a=-b not allowed!";//如果抛出异常,则s=字符串 rerturn 2.0*a*b/(a-b);}
(2)将对象作为异常类型
通常引发异常的函数将传递一个对象,这样可以使用不同的异常类型来区分不同函数在不同情况下引发的异常,另外,对象可以携带信息,程序员可以根据这些信息来确定引发异常的原因。
class bad_hmean{private: double v1; double v2;public: bad_hmean(int a=0,int b=0):v1(a),v2(b){} void mesg();};inline void mesg(){ std::cout<<"hmean("<<v1<<","<<v2<<"):"<<"invalid arguments:a=-b\n";}
函数hmean这样设计,
double hmean(double a,double b){ if(a==-b) throw bad_hmean(a,b); return 2.0*a*b/(a+b);}
主程序:
try{ double z=hmean(x,y); cout<<"z="<<z<<endl;}catch(bad_hmean & bg){ bg.mesg(); cout<<"try again!"<<endl; continue;}
阅读全文
0 0
- 异常浅析
- C++ 异常处理浅析
- Java异常机制浅析
- java异常浅析
- 【C++】 浅析异常
- C++中的异常浅析
- 浅析c++异常
- 浅析java之异常
- c++::浅析c++异常
- JAVA 异常Exception 浅析
- C++ 异常处理浅析
- 【转】MFC异常处理浅析
- SD异常拔出流程浅析
- JAVA的异常处理浅析
- 浅析Java语言中两种异常的差别
- Visual C++中的异常处理浅析
- 浅析Java语言中两种异常的差别
- 浅析Java语言中两种异常的差别
- 编程不是功能实现了就可以了
- 中文字在C/C++中的处理
- java字符串四道课后习题
- set和multiset使用方法 (STL)
- python绘制神经网络(转载)
- 异常浅析
- 嵌入式系统概述(学习笔记)
- griview绑定数据源后显示调用update方法的实现
- CSS小功能
- 学习linux内核(二)
- 常用正则表达式
- Powershell命令笔记
- oracle 序列和触发器的联合使用
- mysql我所遇到的问题case when then的使用