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

xx市院门户网站建设方案营销软文300字范文

xx市院门户网站建设方案,营销软文300字范文,给个免费的网址,做签名照的网站1. 异常 异常通常用于处理逻辑上可能发生的错误 在C98中#xff0c;提供了一套完善的异常处理机制#xff0c;直接在程序中将各种类型的异常抛出#xff0c;从而强制终止程序的运行。 1.1 基本语法 当函数抛出异常时#xff0c;程序会停止执行#xff0c;并显示异常信息…1. 异常 异常通常用于处理逻辑上可能发生的错误 在C98中提供了一套完善的异常处理机制直接在程序中将各种类型的异常抛出从而强制终止程序的运行。 1.1 基本语法 当函数抛出异常时程序会停止执行并显示异常信息。异常处理程序可以通过catch语句捕获并处理异常。如果程序没有捕获异常程序将终止。 在C中栈的解旋是在try块中的函数调用完毕后自动完成的。这意味着在try块中的函数调用可能会抛出异常但不会影响栈的解旋。在catch块中处理异常时栈的解旋会被暂停直到catch块处理完毕后栈的解旋才会恢复。 #include iostream using namespace std; void func() {int x 10;int* p x;*p 20;throw *p; }void catch_func(int a) {std::cout Caught exception: a std::endl; }int main() {try {func();} catch (int e) {catch_func(e);}return 0; } hehedaheheda:~/Linux/c11$ g 8.noexcept.cpp -o app hehedaheheda:~/Linux/c11$ ./app Caught exception: 20 【总结】noexcept | 爱编程的大丙 (subingwen.cn) 异常被抛出后从进入try块起到异常被抛掷前这期间在栈上构造的所有对象都会被自动析构。析构的顺序与构造的顺序相反。这一过程称为栈的解旋。----来自爱编程的大丙 1.2 异常接口声明 ① 显示指定可以抛出的异常类型 divide 函数后添加了 throw 异常接口声明其参数可以表示抛出的异常类型分别为 int 和 MyException 类型 #include iostream using namespace std;struct MyException {MyException(string str):msg(str) {}string msg; };double divide(int a, int b) throw(MyException,int) {if(b 0) {throw MyException(divide by zero);}return a / b; }int main() {try{double val divide(10, 0);cout value: val endl;}catch(int e) {cout catch except: e endl;}catch(MyException e) {cout catch except: e.msg endl;}return 0; } 运行结果  catch except: divide by zero ② 不抛出任何异常 #include iostream using namespace std;struct MyException {MyException(string str):msg(str) {}string msg; };double divide(int a, int b) throw() {if(b 0) {throw MyException(divide by zero);}return a / b; }int main() {try{double val divide(10, 0);cout value: val endl;}catch(int e) {cout catch except: e endl;}catch(MyException e) {cout catch except: e.msg endl;}return 0; } 在divide 函数后添加了throw异常接口声明其参数列表为空表示该函数不允许抛出异常 2. noexcept double divisionMethod(int a, int b) noexcept(常量表达式); ① 简单地在函数声明后加上 noexcept 关键字 ② 可以接受一个常量表达式作为参数常量表达式的结果会被转换成一个bool类型的值          - 值为 true表示函数不会抛出异常          - 值为 false表示有可能抛出异常这里          - 不带常量表达式的noexcept相当于声明了noexcepttrue即不会抛出异常 noexcept | 爱编程的大丙 (subingwen.cn) ----来自爱编程的大丙 在C11中弃用了例如上文的动态异常声明 throw(MyException, int)这一特性表示函数不会抛出异常的动态异常声明 throw() 也被新的 noexcept 异常声明所取代 noexcept是C11中引入的一个关键字用于指定函数抛出异常的情况。当函数声明中使用noexcept时编译器可以推断函数不会抛出异常从而提高代码的执行效率。 noexcept 与 throw动态异常声明的区别 ① 基于异常机制的throw()会带来一些额外的开销若出现函数抛出异常会导致函数栈被依次地展开栈解旋并自动调用析构函数栈上的所有函数 ② noexcept 修饰的函数如果抛出了异常编译器可以选择直接调用 std::terminate() 函数来终止程序的运行这比基于异常机制的 throw() 在效率上会高一些 #include iostream using namespace std; void func() noexcept {std::cout This function does not throw exceptions std::endl; }int main() {try {func();} catch (...) {std::cout Exception caught std::endl;}return 0; } 在这个例子中func函数使用noexcept关键字指定因此编译器可以推断出函数不会抛出异常从而提高代码的执行效率。而main函数中的func调用不会抛出异常因此程序可以正常运行。 #include iostream using namespace std;double divide(int a, int b) noexcept {if(b 0) {cout divide by zero!!! endl;return -1;}return a / b; }int main() {try{double val divide(10, 0);cout value: val endl;}catch(int e) {cout catch except: e endl;}return 0; } hehedaheheda:~/Linux/c11$ g -stdc11 8.noexcept.cpp -o app hehedaheheda:~/Linux/c11$ ./app divide by zero!!! value: -1
http://www.ho-use.cn/article/10816456.html

相关文章:

  • 国外网站做acm题目比较好外贸建站应该怎么做
  • 开发手机网站用什么语言网站导航条内容
  • 网站开发美工总结asp网站安全
  • 一个网站一年要多少钱台州市建设项目规划网站
  • 怎么做网站_华梦服饰网站建设中
  • 盐城网站建设包括哪些做网站东莞选哪家公司好
  • 开封网站建设报价青岛做网站建设的公司排名
  • 网站建设平台汉龙中国腾讯和联通
  • 网站设计在线crm系统学做实体店网站
  • 怎么做单位网站建设网站平台合同范本
  • 富阳有没有做网站的太原企业网站制作
  • 天津网站制作软件网站实现
  • 那几个网站可以做h5济宁网
  • 网站开发工具与技术企业网页是什么
  • 中企动力做的网站被百度屏蔽建筑英才网和中国建筑人才网
  • 公司网站建设及维护管理总结佛山免费建站怎样
  • 赣州市建设工程造价管理网站佛山专业网站设计
  • 黄骅做网站的电话网站开发哪家公司比较好
  • asp网站开发pdf软件设计师通过率
  • 网站建设建设哪家好合肥竞价推广
  • 百色网站建设温州网站推广哪家好
  • 网站和管理系统哪个更难做建立企业的网站有哪几种方案
  • 宁波seo网站服务wordpress友链模板
  • 漳州北京网站建设品牌家具排行榜前十名
  • 如何自己免费制作网站网站开发常用js函数
  • 网站搭建哪里找方便广州网站开发公司
  • 团队合作网站仓储网站建设
  • 网站建设 英语翻译湖南seo优化服务
  • 网站搬家内页打不开口碑好的专业网站建设
  • 淄博网站建设 招聘高端创意网站建设