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

网站备案关闭影响排名四川手机响应式网站建设设计

网站备案关闭影响排名,四川手机响应式网站建设设计,古镇建网站公司,怎么做网站设计方案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.yayakq.cn/news/961389/

相关文章:

  • 公司网站app怎么做免费网站后台模版
  • 新乡做网站多少钱深圳购物网站建设报价
  • 网站怎么做外联福建福清市住房和建设局网站
  • 网站数据库设置权限电商的网站怎么做的好
  • 如何提高网站在搜索引擎中的排名龙岩网站定制
  • 深圳 网站制作 哪家asp 企业网站源码
  • 半路学网站建设难吗注册域名的注意事项
  • 做汽车配件的都在那个网站做呀盐城代运营公司
  • 给网站做维护是什么工作当下网站建设
  • 品牌建设之道有哪些wordpress优化公司
  • 企业logo标志设计免费seo算法
  • 网站h标签江门网站平台建设
  • 做网络的网站很重要吗佛山网页网站设计多少钱
  • html 单页网站网络服务提供者是不是网络运营者
  • 广州网站建设 全包官网浏览器
  • 上海网站制作策划天天网站
  • 开发网站用什么语言免费生成短链接
  • 网站上的动态背景怎么做的易班班级网站建设展示PPT
  • 旅发集团网站建设方案wordpress 标签 取消
  • 互联网公司怎么找网站建设客户it培训机构口碑排名
  • 怎么免费网站电商代运营公司
  • 营销型网站建设推来客网络做网站的一般尺寸
  • 苏中建设集团网站网址杭州互联网公司排名
  • 免费网站正能量app应用大全系统优化软件哪个好
  • 成都市建设局官方网站河北省建设厅报名网站
  • 梅州网站优化网站建设技术课程设计报告
  • 湖南长大建设集团股份有限公司网站软文形式推广产品
  • 广州自助网站制作福州seo扣费
  • 三亚网站建设公司html个人网页制作源代码
  • 青岛市城阳区建设局网站网站首页布局设计教程