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

做360网站首页软件网络架构1788

做360网站首页软件,网络架构1788,酒吧dj做歌网站,网站手机验证码怎么做目录C的异常处理方法知识要点踹扔抓的代码块示例两种处理被0除的方法异常处理机制的优点其他语言中的异常处理C函数异常声明C的异常处理方法知识要点 理解“踹扔抓”三部曲的结构#xff0c;尤其是catch是怎么匹配异常的。 知道C标准库中的异常类都是从exception继承下来的的异常处理方法知识要点踹扔抓的代码块示例两种处理被0除的方法异常处理机制的优点其他语言中的异常处理C函数异常声明C的异常处理方法知识要点 理解“踹扔抓”三部曲的结构尤其是catch是怎么匹配异常的。 知道C标准库中的异常类都是从exception继承下来的并且支持 what() 这个操作 了解logic_error、runtime_error等一些常见的异常类的大致含义以便于我们自己写异常类的时候拿来继承 理解多个catch语句的匹配原则尤其是对于继承链上的异常类型哪个在前哪个在后必须做到心里有数 掌握异常传播的原理异常如果在当前函数中没有被捕获它就会被抛向当前函数的调用者抛异常的语句后面的语句都会被跳过直到遇到对应的catch 踹扔抓的代码块示例 try{code to try;throw an exception (1)with a throw statement(2) or from functionMore code to try; } catch(type e){Code to process the exception; }两种处理被0除的方法 (1) use if statement (使用if语句) (2) use exception handling (使用异常处理) 下面是使用异常处理的程序,如果除数是0那么会抛出number1;执行throw语句之后 紧随其后的 cout 语句就会被跳过 如果能够抓住number1那么就会进行处理不会出现程序出错。 如果type不匹配就会抓不住程序会崩溃。 int main() {// Read two intergerscout Enter two integers: ;int number1, number2;cin number1 number2;try {if (number2 0)throw number1;cout number1 / number2 is (number1 / number2) endl;}catch (int e) {cout Exception: an integer e cannot be divided by zero endl;}cout Execution continues ... endl; }异常处理机制的优点 可将异常信息从被调函数带回给主调函数。异常处理实际上是对程序执行流程的控制 如下例在quotient里面遇到异常将异常扔出而不对异常进行处理问题交由主调函数main来处理。从而将异常的发现与处理分开。 //用异常处理 int quotient(int number1, int number2) {if (number2 0) throw number1; return number1 / number2; } int main() {try {int x quotient(1, 0);} catch (int) {std::cout 除数为0;} }若不用异常处理quotient()如何告诉 main() “number2 有问题”? 我们可以从返回值和传引用的角度思考但是若是函数嵌套调用该如何将异常信息带回给主调函数 (1) 用返回值 ·f(number2 0) return x; //x应该是0还是1 (2) 用指针/引用类型的参数然后再主函数去查看这个参数但是不优雅。 int quotient(int n1, int n2, int s){ if(n2 0) s-1; //求商函数要3个参数 } (3) 如果采用 f(g(h(quotient(x,y))));怎样将错误从quotient() 传到 f()?若是使用(2),难道要在每个函数加上一个引用类型的参数来让主调函数查询是否出现异常吗 显然在这种情况下用异常处理更加简洁 其他语言中的异常处理 python中: try:代码raise xxx抛出异常 except:错误时执行 else:没有错误时执行 finally无论如何都执行 关于java与C 在C中你可以抛出任何类型的异常。c可以抛出任何类型java中这样是不行的. Java的函数异常声明是在编译时刻检查的所以如果是java任何调用abc函数的其他函数java虚拟机会强迫那些调用abc函数的其他函数处理matherr, error这些异常。 而C编译在时候对这些调用 以声明会抛出异常函数 的其他函数不会强制他们处理这些可能会抛出的异常。 C函数异常声明 1、在函数参数列表后声明可能会抛出的异常 C从某个年代就开始在函数的后面加上“” throw“”圆括号内有1个或多个异常类多个用逗号分割。 void abc( int a ) : throw ( matherr, error) {…} 这是告诉别的程序在abc函数的运行时刻最多可以抛出圆括号里的哪些个异常类。 2、函数后声明可能抛出的异常 的 意思 当前函数运行时刻有可能会抛出的异常但是保证不会抛出圆括号内matherr, error以外的其他异常。 C函数异常声明不是用来约束那些调用声明可能会抛出异常abc函数 的其他函数。不是约束其他函数 调用abc 就必须处理matherr, error这些异常。而是用来约束abc函数本身的行为。abc 函数声明会抛出matherr, error这些异常如果abc函数运行时抛出了除了matherr, error以外的异常程序会抛出unexpected想不到/未知的异常然后程序终止。 ·C函数后声明/不声明异常 ·1、void abc( int a ) {…} //普通函数 普通函数表示可以抛出任何异常 ·2、void abc( int a ):throw() {…} // 不抛异常的函数 函数参数后 throw()圆括号内没有任何东西表示这个函数承诺不会抛出任何异常 ·3、void abc( int a ):throw(matherr) {…} //函数会抛出matherr 函数参数后 throw()圆括号有matherr表示运行时会有一个机制检验这个函数是否真的只抛出了列表里的matherr异常。 ·区别与Java函数后声明/不声明异常 ·1、void abc( int a ) {…} //普通函数 普通函数表示不抛出任何异常 ·2、void abc( int a ) throw(exception) {…} // 抛出任何异常 函数参数后 throw()圆括号内有exception表示这个函数会抛出任何异常
http://www.zqtcl.cn/news/344016/

相关文章:

  • 智能建站软件哪个好智慧城市建设评价网站
  • 做网站用什么配资电脑织梦做的网站织梦修改网页模板
  • 手机网站制作吧网店营销策略
  • 管理员修改网站的参数会对网站的搜效果产生什么影响?网站建设新闻+常识
  • WordPress主题没有删除网站优化 工具
  • 建设外贸商城网站制作外国网站域名在哪查
  • 青浦练塘网站建设关键词优化的策略有哪些
  • 做网站链接怎么弄上海万户网络技术有限公司
  • 嵌入字体的网站网站结构和布局区别
  • 莆田网站建设五维网络有限公司零基础网站开发要学多久
  • 重庆官方网站查询系统2020最近的新闻大事10条
  • 中国网站建设公司排行榜成都彩票网站建设
  • 网站域名解析失败个人推广网站
  • 东莞网站建设网络公司排名卓业网站建设
  • 建立自己的网站平台的好处高校英文网站建设
  • 大力推进网站集约化建设兰州优秀网站推广
  • 手机wap网站怎样从微信公众号打开辽宁省住房和城乡建设厅网站上不去
  • 网站建设备案 优帮云四川建设设计公司网站
  • dede网站搬家 空间转移的方法网站建设多少钱一个平台
  • 山东济南网站开发互联网创业项目哪家好平台
  • 公司网站建设文案济南网站定制策划
  • 怎么做网站例如京东小红书推广引流
  • 游戏网站建设策划书企业vi包含哪些内容
  • 教育视频网站开发网站响应时间长
  • 在哪些网站做收录比较快张家港江阴网站设计
  • 商业网站最佳域名贵州网站建设
  • 毕业设计做网站的步骤网络推广关键词优化公司
  • 悠悠我心的个人网站怎么做怎么开网站平台
  • 行业网站产品选择废旧材料手工制作大全
  • 企业内网网站建设徐州关键词优化公司