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

湛江市住房建设局网站网站域名怎么快速备案

湛江市住房建设局网站,网站域名怎么快速备案,免费的网站软件下载安装,遵义网站建设制作公司#x1f493;博主CSDN主页:杭电码农-NEO#x1f493;   ⏩专栏分类:C从入门到精通⏪   #x1f69a;代码仓库:NEO的学习日记#x1f69a;   #x1f339;关注我#x1faf5;带你学习C   #x1f51d;#x1f51d; 异常处理的方式 1. 前言2. C语言处理异常的方式… 博主CSDN主页:杭电码农-NEO   ⏩专栏分类:C从入门到精通⏪   代码仓库:NEO的学习日记   关注我带你学习C   异常处理的方式 1. 前言2. C语言处理异常的方式3. C异常概念4. 异常的抛出和匹配原则5. 异常的重新抛出6. RAII思想在异常体系中的使用7. 自定义异常体系8. C标准库的异常体系9. 总结以及拓展 1. 前言 C有一套独立的异常处理机制, 相信大家一定听说过try,catch这两 个词,今天就来做详细的介绍 本章重点: 本篇文章着重讲解C异常处理的方式, 三个关键字,tyr,catch,throw,并且介绍异 常的用法和自定义体系的异常以及智能指 针在异常处理中的使用场景.其中,会复习 C语言异常处理的方式 2. C语言处理异常的方式 最经典的处理方式:使用assert assert的缺陷: 如果在代码中使用assert,则只在debug 模式下有效,在release模式下会失效.并且 只要有错误就会直接终止程序,这明显不符 合实际,比如说在使用微信时,由于网络问题 信息没发出去,这时直接将微信程序终止了, 这样做会被乱棍打死! C语言还能用错误码返回异常信息 错误码errno的缺陷: 返回的错误码是一个数字,程序员还需 去查表来得知这个错误码是什么意思, 并且就算查找了错误码的信息,可能它 说的不清楚,也不好看错误信息 综上所述,C语言处理异常的方式还是 不够完美,于是祖师爷写了一套自己的 3. C异常概念 当一个函数发现自己无法处理的错误时就可以抛出异常让函数的直接或间接的调用者处理这个错误。 throw: 当问题出现时程序会抛出一个异常。这是通过使用 throw 关键字来完成的catch: 在您想要处理问题的地方通过异常处理程序捕获异常.catch 关键字用于捕获异常try: try 块中的代码标识将被激活的特定异常,它后面通常跟着一个或多个 catch 块。 使用方法: try{int a,b;cinab;if(b 0)throw 除0错误cout(a/b)endl; }catch(string str) {//...... }如果有一个块抛出一个异常捕获异常的方法会使用 try 和 catch 关键字。try 块中放置可能抛出异常的代码try 块中的代码被称为保护代码,一旦throw后,会直接跳到catch的位置,后面的代码不会执行 4. 异常的抛出和匹配原则 异常的抛出和匹配有以下机制: 抛出的内容和捕捉的内容要一致 如果你在throw时抛出一个字符串,但是 在catch捕获异常时的参数却写的是整数 那么这个抛出的异常就不会去这个catch try{int a,b;cinab;if(b 0)throw 除0错误cout(a/b)endl; } catch(int flag)//类型与throw的不匹配,会跳到下面的catch {//...... } catch(string str) {//...... }try可以嵌套多层 try和catch不仅仅可以在一个作用域 使用,还可以在最外层try,然后嵌套多 层函数,在最里面的函数throw! void a(){throw 测试中;} void b(){a()} void c(){b()} int main() {try{c();}catch(string str){}throw和catch遵循就近原则 若写了多个catch,并且这些catch都 和throw的内容匹配,则会跳转到与 throw最近的内个catch中! double Division(int a, int b) {// 当b 0时抛出异常if (b 0)throw 除0错误!;elsereturn ((double)a / (double)b); } void Func() {int len, time;cin len time;cout Division(len, time) endl;catch (const char* errmsg {//这个catch与throw相距最近,会优先到这儿cout errmsg 111 endl;} } int main() {try {Func();}catch (const char* errmsg {cout errmsg 222 endl;}return 0; }catch(...)可以捕获任意类型的异常 在公司写大工程的时候,会和很多同事 合作写代码,大家都会抛出异常,但是你 不能确定是不是所有人抛出的类型你都 有相应的catch可以接收,若抛出一个异常 没有被捕获会直接报错,所以…的作用很 明显,用来兜底!一般用于接收一些未知异常 double Division(int a, int b) {// 当b 0时抛出异常if (b 0)throw 除0错误!;elsereturn ((double)a / (double)b); } void Func() {int len, time;cin len time;cout Division(len, time) endl;catch (const char* errmsg {//这个catch与throw相距最近,会优先到这儿cout errmsg 111 endl;} } int main() {try {Func();}catch (const char* errmsg {cout errmsg 222 endl;}catch(...){cout未知异常endl; }return 0; }基类可以接受抛出的子类对象 抛出和捕获有一个例外,那就是可以抛出 子类对象,用基类捕获,这个在实际场景中 非常实用,我们会在后面详谈 5. 异常的重新抛出 有可能在捕获异常时,一次捕获不能 完全解决问题,比如我们想在main函 数中处理所有的异常,在非main函数 中打印一下异常信息然后再将异常抛 到main中统一做处理 double Division(int a, int b) {// 当b 0时抛出异常if (b 0){throw Division by zero condition!;}return (double)a / (double)b; } void Func() {// 这里可以看到如果发生除0错误抛出异常另外下面的array没有得到释放。// 所以这里捕获异常后并不处理异常异常还是交给外面处理这里捕获了再// 重新抛出去。int* array new int[10];try {int len, time;cin len time;cout Division(len, time) endl;}catch (...){cout delete [] array endl;delete[] array;throw;}cout delete [] array endl;delete[] array; } int main() {try{Func();}catch (const char* errmsg){cout errmsg endl;}return 0; }在上面的场景中,如果抛出异常,就会 直接走到catch处,不会调用delete释放 释放在堆上开辟的空间,就会有问题,所 以第一次catch时先处理释放空间的问题 然后将异常再次抛出后再处理异常问题 6. RAII思想在异常体系中的使用 如果你不知道什么是RAII思想,不知道 什么是智能指针,请先阅读这篇文章: 智能指针RAII思想讲解 在异常体系中在堆上申请空间,或者 打开某个问题时常容易出问题,因为 堆上开辟的空间要显示调用delete处理 而打开的文件也要显示调用fclose关闭 所以一旦发生异常就会直接跳转到catch 的位置,有可能直接忽略了释放函数 这也就是导致了资源并没有被释放! 在异常体系中最好使用RAII思想申请资源 即使抛出异常后直接跳到catch也没问题 当出了对象作用域会自动调用析构释放! double Division(int a, int b) {// 当b 0时抛出异常if (b 0){throw Division by zero condition!;}return (double)a / (double)b; } void Func() {shared_ptrint array(new int(10));try {int len, time;cin len time;cout Division(len, time) endl;} } int main() {try{Func();}catch (const char* errmsg){cout errmsg endl;}return 0; }7. 自定义异常体系 实际使用中很多公司都会自定义自己的异常体系进行规范的异常管理因为一个项目中如果大家随意抛异常那么外层的调用者基本就没办法玩了所以实际中都会定义一套继承的规范体系。这样大家抛出的都是继承的派生类对象捕获一个基类就可以了 不同的部分可以抛出不同的异常,然后在总的main函数中使用基类捕获所有的异常再来进行特殊的处理 8. C标准库的异常体系 这里的内容属于了解范畴,用几张图 带大家了解一下: 实际中都是我们自己去实现一个异常体系 因为C库做的并不好 9. 总结以及拓展 异常总体而言利大于弊所以工程中我们还是鼓励使用异常的。另外OO的语言基本都是用异常处理错误这也可以看出这是大势所趋。 除此之外,异常还有一套规范,因为 比较鸡肋,所以放在了最后来介绍: 异常规格说明的目的是为了让函数使用者知道该函数可能抛出的异常有哪些。 可以在函数的后面接throw(类型)列出这个函数可能抛掷的所有异常类型。 函数的后面接throw()表示函数不抛异常。 若无异常接口声明则此函数可以抛掷任何类型的异常。 // 这里表示这个函数会抛出A/B/C/D中的某种类型的异常 void fun() throw(ABCD); // 这里表示这个函数只会抛出bad_alloc的异常 void* operator new (std::size_t size) throw (std::bad_alloc); // 这里表示这个函数不会抛出异常 void* operator delete (std::size_t size, void* ptr) throw(); // C11 中新增的noexcept表示不会抛异常 thread() noexcept; thread (thread x) noexcept;之所以比较鸡肋是因为就算你写了 noexcept,再抛出异常 在某些编译器也不会报错 下期预告:单例模式特殊类设计
文章转载自:
http://www.morning.wqpm.cn.gov.cn.wqpm.cn
http://www.morning.qggm.cn.gov.cn.qggm.cn
http://www.morning.ywgrr.cn.gov.cn.ywgrr.cn
http://www.morning.jqkjr.cn.gov.cn.jqkjr.cn
http://www.morning.xqcbz.cn.gov.cn.xqcbz.cn
http://www.morning.i-bins.com.gov.cn.i-bins.com
http://www.morning.qbrdg.cn.gov.cn.qbrdg.cn
http://www.morning.zzjpy.cn.gov.cn.zzjpy.cn
http://www.morning.yxwnn.cn.gov.cn.yxwnn.cn
http://www.morning.dmthy.cn.gov.cn.dmthy.cn
http://www.morning.mrccd.cn.gov.cn.mrccd.cn
http://www.morning.sjftk.cn.gov.cn.sjftk.cn
http://www.morning.pnjsl.cn.gov.cn.pnjsl.cn
http://www.morning.gwqcr.cn.gov.cn.gwqcr.cn
http://www.morning.zsfooo.com.gov.cn.zsfooo.com
http://www.morning.yrhpg.cn.gov.cn.yrhpg.cn
http://www.morning.pmghz.cn.gov.cn.pmghz.cn
http://www.morning.wgcng.cn.gov.cn.wgcng.cn
http://www.morning.ntdzjx.com.gov.cn.ntdzjx.com
http://www.morning.llqky.cn.gov.cn.llqky.cn
http://www.morning.wphzr.cn.gov.cn.wphzr.cn
http://www.morning.gsdbg.cn.gov.cn.gsdbg.cn
http://www.morning.mrcpy.cn.gov.cn.mrcpy.cn
http://www.morning.kkwbw.cn.gov.cn.kkwbw.cn
http://www.morning.ltpph.cn.gov.cn.ltpph.cn
http://www.morning.junyaod.com.gov.cn.junyaod.com
http://www.morning.bzlgb.cn.gov.cn.bzlgb.cn
http://www.morning.ffwrq.cn.gov.cn.ffwrq.cn
http://www.morning.jhxtm.cn.gov.cn.jhxtm.cn
http://www.morning.zbnkt.cn.gov.cn.zbnkt.cn
http://www.morning.mxmtt.cn.gov.cn.mxmtt.cn
http://www.morning.hpxxq.cn.gov.cn.hpxxq.cn
http://www.morning.rnmyw.cn.gov.cn.rnmyw.cn
http://www.morning.pjxlg.cn.gov.cn.pjxlg.cn
http://www.morning.nzfjm.cn.gov.cn.nzfjm.cn
http://www.morning.plqhb.cn.gov.cn.plqhb.cn
http://www.morning.njftk.cn.gov.cn.njftk.cn
http://www.morning.ydgzj.cn.gov.cn.ydgzj.cn
http://www.morning.mkhwx.cn.gov.cn.mkhwx.cn
http://www.morning.rzscb.cn.gov.cn.rzscb.cn
http://www.morning.wtbzt.cn.gov.cn.wtbzt.cn
http://www.morning.sfnr.cn.gov.cn.sfnr.cn
http://www.morning.yxnkr.cn.gov.cn.yxnkr.cn
http://www.morning.kdjtt.cn.gov.cn.kdjtt.cn
http://www.morning.wrlqr.cn.gov.cn.wrlqr.cn
http://www.morning.lmjkn.cn.gov.cn.lmjkn.cn
http://www.morning.zwckz.cn.gov.cn.zwckz.cn
http://www.morning.mjzgg.cn.gov.cn.mjzgg.cn
http://www.morning.pgmbl.cn.gov.cn.pgmbl.cn
http://www.morning.zqkr.cn.gov.cn.zqkr.cn
http://www.morning.lnbyk.cn.gov.cn.lnbyk.cn
http://www.morning.tgxrm.cn.gov.cn.tgxrm.cn
http://www.morning.rkypb.cn.gov.cn.rkypb.cn
http://www.morning.kjlhb.cn.gov.cn.kjlhb.cn
http://www.morning.sfdsn.cn.gov.cn.sfdsn.cn
http://www.morning.ylyzk.cn.gov.cn.ylyzk.cn
http://www.morning.yzxhk.cn.gov.cn.yzxhk.cn
http://www.morning.hflrz.cn.gov.cn.hflrz.cn
http://www.morning.grxyx.cn.gov.cn.grxyx.cn
http://www.morning.pmbcr.cn.gov.cn.pmbcr.cn
http://www.morning.xkhhy.cn.gov.cn.xkhhy.cn
http://www.morning.fkffr.cn.gov.cn.fkffr.cn
http://www.morning.crrmg.cn.gov.cn.crrmg.cn
http://www.morning.xhqr.cn.gov.cn.xhqr.cn
http://www.morning.ysdwq.cn.gov.cn.ysdwq.cn
http://www.morning.lktjj.cn.gov.cn.lktjj.cn
http://www.morning.rtqyy.cn.gov.cn.rtqyy.cn
http://www.morning.gnjtg.cn.gov.cn.gnjtg.cn
http://www.morning.hwhnx.cn.gov.cn.hwhnx.cn
http://www.morning.tbkqs.cn.gov.cn.tbkqs.cn
http://www.morning.nzfyx.cn.gov.cn.nzfyx.cn
http://www.morning.slqgl.cn.gov.cn.slqgl.cn
http://www.morning.hmjasw.com.gov.cn.hmjasw.com
http://www.morning.zqbrd.cn.gov.cn.zqbrd.cn
http://www.morning.xrksf.cn.gov.cn.xrksf.cn
http://www.morning.plpqf.cn.gov.cn.plpqf.cn
http://www.morning.zbqry.cn.gov.cn.zbqry.cn
http://www.morning.mdwb.cn.gov.cn.mdwb.cn
http://www.morning.bhqlj.cn.gov.cn.bhqlj.cn
http://www.morning.wrbnh.cn.gov.cn.wrbnh.cn
http://www.tj-hxxt.cn/news/268955.html

相关文章:

  • 网站创意模板国外优秀vi设计网站
  • 如何建设国外网站企业怎么做网站做网站的公司
  • i网站建设东莞做购物网站
  • 惠州营销网站制作品牌网站建设相关问题
  • 网站建设设计设计公司哪家好电子商务营销策略有哪些
  • 网站开发工程师自学无锡网站制作哪家公司好
  • 东莞网络网站建设wordpress邮件发送 插件
  • 坪山住房和建设局网站做网站开发背景
  • 旅社网站建设中山做百度网站的公司吗
  • 图片展示型网站模板智能产品创新设计
  • 做可转债好的网站学校网页网站模板免费下载
  • 北京网站建设收费山西建设执业资格注册管理中心网站
  • 什么是建站怎么往网站换图片
  • 网站欢迎页面怎么做网站投入费用
  • 免费的网站软件下载wordpress批量添加分类
  • 免费信息推广网站上海网站建设友汇网站
  • 去哪里建设自己的网站?工作励志的句子 正能量
  • 免费WAP建导航网站基于php的微网站开发
  • 全国网站建设哪家专业国外平面设计网站有哪些
  • 深圳龙华网站建设公司哪家好私人网官网
  • 网站开发(定制)合同 模板公司网站需求说明书
  • 滁州seo网站推广网站推广具体内容简要说明
  • 中国做室内设计的网站威海推广
  • 网站建设品牌营销企业自建站
  • 网站建设和网络推广外包WordPress页首
  • 新余 网站建设哈尔滨网站制作费用
  • 南昌网站建设哪家最好滨海哪家专业做网站
  • wordpress试用广州抖音seo价格
  • 蒲城矿建设备制造厂网站南昌网站建设方案详细版
  • 网站建设基本流程教学视频教程马云谈2025的房价