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

宁乡做网站国内国际时事写实记录2023

宁乡做网站,国内国际时事写实记录2023,大连建设网水电费缴费,网站收录查询方法异常基本概念 异常处理就是处理程序中的错误#xff0c;所谓错误是指在程序运行的过程中发生的一些异常事件#xff08;如#xff1a;除0退出#xff0c;数组下标越界#xff0c;所要读取的文件不存在#xff0c;空指针#xff0c;内存不足等等#xff09; c语言中处…异常基本概念 异常处理就是处理程序中的错误所谓错误是指在程序运行的过程中发生的一些异常事件如除0退出数组下标越界所要读取的文件不存在空指针内存不足等等 c语言中处理异常 两种方法 使用整形的返回值标识错误 使用errno宏(可以简单的理解为一个全局整形变量)去记录错误当然c中仍然可以用这两种方法的。 这两种方法最大的缺陷就是会出现不一致问题例如有些函数返回1表示成功有些则返回0表示成功 还有一个缺点就是函数的返回值只有一个你通过函数的返回值表示错误代码那么函数就不能返回其他的值。当然你也可以通过指针或者c的引用来返回另外的值但是这样可能会令你的程序比较难懂 c中处理异常 函数的返回值可以忽略但异常不可忽略如果程序出现异常但是没有被捕获程序就会终止这多少会促使程序员开发出来的程序更健壮一点而如果使用C语言的errot宏或者函数的返回值调用者都有可能忘记检查从而没有对错进行处理结果造成程序员莫名其妙的终止或出现错误的结果整型返回值没有任何语义信息而异常却包含语义信息有时你从类名就能狗体现出来整型返回值缺乏相关的上下文信息异常作为一个类可以拥有自己的成员这些成员可以传递足够的信息异常处理可以在调用跳级。这是一个代码编写时的问题假设在有多个函数的调用栈中出现某个错误使用整型返回码要求你在每一级函数中都要进行处理而使用异常处理的栈展开机制只需要在一处进行处理就可以不需要每级函数都处理 异常的基本使用 try试图执行try{}中的内容 在可能出现异常的地方 抛出异常 throw try下面catch捕获异常 catch捕获类型...代表 所有其他类型 如果不想处理异常继续向上抛出throw 如果没有任何处理异常的地方那么成员调用terminate函数中断 自定义异常类可以抛出自定义的对象 #includeiostreamusing namespace std;class myException //自定义异常类 { public:void printError(){cout 自定义的异常 endl;} };int myDevide(int a, int b) {if (b 0){//如果b是异常抛出异常//return -1;//throw - 1; 抛出int类型异常//throw 3.14;//抛出double类型异常 异常必须处理//throw a;throw myException(); //匿名对象}return a / b; }void test01(){int a 10;int b 0;//int ret myDevide(a, b);//早期如果返回-1 无法区分到底是结果还是异常//c中异常处理try{myDevide(a, b);}catch (int)//捕获异常{cout int 类型异常捕获 endl;}catch (double){//如果不想处理这个异常可以向继续向上抛出throw;cout double类型异常捕获 endl;}catch (myException e){e.printError();}catch (...){cout 其他异常类型捕获 endl;}}int main() {try{test01();}catch (double) //如果异常都没处理那么成员terminate函数使程序中断{cout main函数中double类型异常捕获 endl;}catch (...){cout main函数中其他异常类型捕获 endl;}//test01();system(pause);return 0; }总结 若有异常则通过throw操作创建一个异常对象并抛出 将可能抛出异常的程序投放到try块之中 如果在try段执行期间没有引起异常那么跟在try后面的catch字句就不会执行 catch子句会根据出现的先后顺序被检查匹配的catch语句捕获并处理异常或继续抛出异常 如果匹配的处理来找到则运行函数terminate将自动被调用其缺省功能调用abort终止程序 处理不了的异常可以在catch的最后一个分支使用throw,向上抛 c异常处理使得异常的引发和异常的处理不必在一个函数中这样底层可以着重解决具体问题而不必过多的考虑异常的处理上层调用者可以在适当的位置设计对不同类型异常的处理 #includeiostreamusing namespace std;class myException //自定义异常类{public:void printError(){cout 自定义的异常 endl;}};int myDevide(int a, int b){if (b 0){//如果b是异常抛出异常//return -1;//throw - 1; 抛出int类型异常//throw 3.14;//抛出double类型异常 异常必须处理//throw a;throw myException(); //匿名对象}return a / b;}void test01(){int a 10;int b 0;//int ret myDevide(a, b);//早期如果返回-1 无法区分到底是结果还是异常//c中异常处理try{myDevide(a, b);}catch (int)//捕获异常{cout int 类型异常捕获 endl;}catch (double){//如果不想处理这个异常可以向继续向上抛出throw;cout double类型异常捕获 endl;}catch (myException e){e.printError();}catch (...){cout 其他异常类型捕获 endl;}}int main(){try{test01();}catch (double) //如果异常都没处理那么成员terminate函数使程序中断{cout main函数中double类型异常捕获 endl;}catch (...){cout main函数中其他异常类型捕获 endl;}//test01();system(pause);return 0;}栈解旋 从try开始到throw抛出异常之前所有栈上的对象都会被释放这个过程称为栈解旋构造析构顺序相反 栈上对象构造顺序与析构顺序相反 class Person{public:Person(){cout Person构造 endl;}~Person(){cout Person析构 endl;}};int myDevide(int a, int b){if (b 0){//如果b是异常抛出异常//return -1;//throw - 1; 抛出int类型异常//throw 3.14;//抛出double类型异常 异常必须处理//throw a;//栈解旋//从try开始到throw抛出异常之前所有栈上的对象都会被释放//这个过程称为栈解旋//构造析构顺序相反Person p1;Person p2;throw myException(); //匿名对象}return a / b;}
http://www.zqtcl.cn/news/278129/

相关文章:

  • 想做一个什么样的网站网站建设功能评价指标
  • 网站建设渠道合作友情链接是免费的吗
  • wordpress如何制作网站网站建设及推广方案ppt
  • 关于建设门户网站的通知重庆刮刮卡制作
  • 网站建设和维护工作内容凡科网免费建站步骤及视频
  • 如何用c 做网站最新疫苗接种最新消息
  • 营销型网站建设报价wordpress 注册 登录界面
  • 网站编辑器哪个好黄骅网站建设价格
  • 爱站工具包官网下载国外cdn
  • 郑州便宜网站建设做网站横幅的图片多大
  • 网站建设的未来wordpress防黑客插件
  • 个人备案网站可以做支付吗做娱乐新闻的网站有哪些
  • 国家建设部网站网站导航如何做半透明
  • 长治网站设计制作网站网站是用什么软件做的
  • wordpress成长记录网站模版市场推广方案ppt
  • 外贸网站建设560wordpress 在线音乐播放器
  • 大连哪里有手机自适应网站建设维护交互式网站开发技术asp
  • 潍坊做网站多少钱个人业务网站带后台
  • 网站建设灬金手指科杰全部游戏免费(试玩)
  • 石家庄网站设计宜昌市住房和城乡建设局网站
  • 商城型企业网站的功能中山市中国建设银行网站
  • 公司做网站那个网站好网站推广seo方法
  • 赣州制作网站百度贵州icp网站备案中心
  • 阿里云域名如何做网站如何查询网站快照
  • 温州市城乡建设厅网站首页有没有做网站的多少钱
  • 网站建设实训报告建议缘震网络网站建设之f套餐
  • 网上免费注册qq网站wordpress怎么发布网站
  • 网站没有根目录国内互联网建站公司排名
  • 做网站需要架构师吗鞍山贴吧最新消息
  • 大连网站关键词推广网站建设合同报价