当前位置: 首页 > news >正文

平面设计接单价格表北海seo快速排名

平面设计接单价格表,北海seo快速排名,财政部 网站开发收费标准,wordpress后台忘记密码1.什么是异常,什么是错误? 程序无法保证100%正确运行,万无一失。有的错误在编译时能发现,比如:关键字拼写、变量名未定义、括号不配对、语句末尾缺分号等。这是在编译阶段发现的,称为编译错误。 有的能正常…

1.什么是异常,什么是错误?

程序无法保证100%正确运行,万无一失。有的错误在编译时能发现,比如:关键字拼写、变量名未定义、括号不配对、语句末尾缺分号等。这是在编译阶段发现的,称为编译错误。
有的能正常通过编译,也能运行,但在运行过程中出现异常。出现异常,系统不应该崩溃退出,而应该给用户提示,让他改对输入。
比如:计算过程,出现除数为0, 内存空间不够、无法打开输入文件。 这体现了系统的容错能力。
**异常处理:**对运行时出现的差错以及其它例外情况的处理。

2.如何处理异常

#include<iostream>
#include<cmath>
using namespace std;
int main(){double triangle(double,double,double);cout << "pls input three double num and make a triangle:" << endl;double a,b,c, area;cin >> a >> b >> c;try{while(a>0&&b>0&&c>0){area = triangle(a,b,c);}}catch(double){cout << "error!" << endl;}catch(const std::exception& e){std::cerr << e.what() << '\n';}cout << "the result:" << area << endl;return 0;}double triangle(double a,double b,double c){double area;double s = (a+b+c)/2;if(a+b<=c||a+c<=b||b+c<=a){throw a;}area = sqrt(s*(s-a)*(s-b)*(s-c));return area;
}

可以捕获任何类型的错误,用来兜底使用

catch(....){cout << "ERROR! << endl;
}

上层调用侧将异常信息原样抛出

catch(int){throw;// 将已捕获的异常信息再次原样输出
}

3.在函数声明中进行异常情况指定

php7 开始有了这种情况,原来是从C++来的

double triangle(double,double,double) throw(double);

表示函数只能抛出double类的异常。

double triangle(double,double,double) throw(double,int, float, char);

表示函数只能抛出double,int, float, char类的异常。

表示一个不能抛出异常的函数,程序将非正常终止

double triangle(double,double,double) throw();

4. 进阶

4.1 在异常处理中处理析构函数?

我记得php中也对此有过讨论。好像还能手动修改。
先执行 destruct 在执行 catch

#include<iostream>
#include<string>
#include<cmath>
using namespace std;
class Student{
public:Student(int n, string nam){num = n;name = nam;cout << "constructor-" << num << endl;}~Student(){cout << "destructor-" << num << endl;}void get_data();
private:int num;string name;};void Student::get_data(){if (num==0){throw num;}else{cout << num << " " << name << endl;cout << "in get_data() " << endl;}
}void fun(){Student stud1(1101,"Tan");stud1.get_data();Student stud2(0,"li");stud2.get_data();
}int main(){cout << "main begin" << endl;cout << "call fun()" << endl;try{fun();}catch(int n){cout << "num="<<n<<",error!"<<endl;}cout << "main end" << endl;return 0;}

输出内容:

main begin
call fun()
constructor-1101
1101 Tan
in get_data()
constructor-0destructor-0destructor-1101
num=0,error!
main end

4.2 如何在catch中获取堆栈信息?

http://www.dinnco.com/news/21435.html

相关文章:

  • 手机网站建设免费网络销售怎么样
  • 网站建设公司做前端山东搜索引擎优化
  • 做网站专家危机舆情公关公司
  • 中山论坛建站模板网站怎么提升关键词排名
  • 网站分辨率做多大网站建设营销推广
  • 手机网站建设经典教程百度查关键词显示排名
  • 国外企业招聘网站营销推广方案模板
  • 男女同房做爰网站外包seo公司
  • 网站开发有很多种吗太原seo计费管理
  • 电脑做ppt一般下载哪个网站好怎样建立自己的网站平台
  • 标书制作难吗seo是什么职业做什么的
  • 做摄影网站在百度怎么免费发布广告
  • 什么是企业云网站建设搜索引擎广告优化
  • 大宗贸易交易平台seo整站优化服务
  • 国内出名的校园文化建设网站有哪些成人电脑速成培训班
  • 用手机制作宣传单的appaso优化的主要内容
  • 新开的公司建立网站有哪些要做的合肥品牌seo
  • 标志设计公司成都seo优化服务是什么
  • 查询建筑资质的网站nba今日最新消息
  • 重庆 网站设计打广告去哪个平台免费
  • 部队织梦网站模板免费下载网站建设 全网营销
  • 京东可以免费做特效的网站网络媒体有哪些
  • 汇邦团建网站谁做的网络培训中心
  • 视频网站怎么做排名广州今日头条新闻
  • wordpress百度云链接seo百度快照优化公司
  • 深圳网络做网站app关键词推广
  • 云南做公司网站多少钱北京百度竞价托管
  • 河北网站建设市面价免费域名解析平台
  • 网站建设与推广方案网站制作大概多少钱
  • 网站公安备案电话推广文案范例