幼儿饰品瑜伽美体用品微软
投稿投诉
微软创意
爱情通信
用品婚姻
爱好看病
美体软件
影音星座
瑜伽周边
星座办公
饰品塑形
搞笑减肥
幼儿两性
智家潮品

Java异常总结(一)Java异常简介及其架构

  概要
  本章对Java中的异常进行介绍。内容包括:
  Java异常简介
  Java异常框架
  本文内容主要出自B站视频:尚学堂给同学们带来全新的Java300集课程啦!java零基础小白自学Java必备优质教程手把手图解学习Java,让学习成为一种享受哔哩哔哩bilibiliJava异常简介
  Java异常是Java提供的一种识别及响应错误的一致性机制。
  Java异常机制可以使程序中异常处理代码和正常业务代码分离,保证程序代码更加优雅,并提高程序健壮性。在有效使用异常的情况下,异常能清晰地回答what,where,why这3个问题:异常类型回答了什么被抛出,异常堆栈跟踪回答了在哪抛出,异常信息回答了为什么会抛出。
  Java异常机制用到的几个关键字:try、catch、finally、throw、throws。
  try用于监听。将要被监听的代码(可能抛出异常的代码)放在try语句块之内,当try语句块内发生异常时,异常就被抛出。
  catch用于捕获异常。catch用来捕获try语句块中发生的异常。
  finallyfinally语句块总是会被执行。它主要用于回收在try块里打开的物力资源(如数据库连接、网络连接和磁盘文件)。只有finally块,执行完成之后,才会回来执行try或者catch块中的return或者throw语句,如果finally中使用了return或者throw等终止方法的语句,则就不会跳回执行,直接停止。
  throw用于抛出异常。
  throws用在方法签名中,用于声明该方法可能抛出的异常。
  下面通过几个示例对这几个关键字进行简单了解。
  示例一:了解try和catch基本用法publicclassDemo1{publicstaticvoidmain(String〔〕args){try{inti100;System。out。println(ii);}catch(ArithmeticExceptione){System。out。println(CaughtException);System。out。println(e。getMessage():e。getMessage());System。out。println(e。toString():e。toString());System。out。println(e。printStackTrace():);e。printStackTrace();}}}
  运行结果:CaughtExceptione。getMessage():byzeroe。toString():java。lang。ArithmeticException:byzeroe。printStackTrace():java。lang。ArithmeticException:byzeroatDemo1。main(Demo1。java:6)
  结果说明:在try语句块中有除数为0的操作,该操作会抛出java。lang。ArithmeticException异常。通过catch,对该异常进行捕获。
  观察结果我们发现,并没有执行System。out。println(ii)。这说明try语句块发生异常之后,try语句块中的剩余内容就不会再被执行了。
  示例二:了解finally的基本用法
  在示例一的基础上,我们添加finally语句。publicclassDemo2{publicstaticvoidmain(String〔〕args){try{inti100;System。out。println(ii);}catch(ArithmeticExceptione){System。out。println(CaughtException);System。out。println(e。getMessage():e。getMessage());System。out。println(e。toString():e。toString());System。out。println(e。printStackTrace():);e。printStackTrace();}finally{System。out。println(runfinally);}}}
  运行结果:CaughtExceptione。getMessage():byzeroe。toString():java。lang。ArithmeticException:byzeroe。printStackTrace():java。lang。ArithmeticException:byzeroatDemo2。main(Demo2。java:6)runfinally
  结果说明:最终执行了finally语句块。
  示例三:了解throws和throw的基本用法
  throws是用于声明抛出的异常,而throw是用于抛出异常。classMyExceptionextendsException{publicMyException(){}publicMyException(Stringmsg){super(msg);}}publicclassDemo3{publicstaticvoidmain(String〔〕args){try{test();}catch(MyExceptione){System。out。println(CatchMyException);e。printStackTrace();}}publicstaticvoidtest()throwsMyException{try{inti100;System。out。println(ii);}catch(ArithmeticExceptione){thrownewMyException(ThisisMyException);}}}
  运行结果:CatchMyExceptionMyException:ThisisMyExceptionatDemo3。test(Demo3。java:24)atDemo3。main(Demo3。java:13)
  结果说明:
  MyException是继承于Exception的子类。test()的try语句块中产生ArithmeticException异常(除数为0),并在catch中捕获该异常;接着抛出MyException异常。main()方法对test()中抛出的MyException进行捕获处理。
  Java异常框架
  Java异常架构图
  1。Throwable
  Throwable是Java语言中所有错误或异常的超类。
  Throwable包含两个子类:Error和Exception。它们通常用于指示发生了异常情况。
  Throwable包含了其线程创建时线程执行堆栈的快照,它提供了printStackTrace()等接口用于获取堆栈跟踪数据等信息。
  2。Exception
  Exception及其子类是Throwable的一种形式,它指出了合理的应用程序想要捕获的条件。
  3。RuntimeException
  RuntimeException是那些可能在Java虚拟机正常运行期间抛出的异常的超类。
  编译器不会检查RuntimeException异常。例如,除数为零时,抛出ArithmeticException异常。RuntimeException是ArithmeticException的超类。当代码发生除数为零的情况时,倘若既没有通过throws声明抛出ArithmeticException异常,也没有通过try。。。catch。。。处理该异常,也能通过编译。这就是我们所说的编译器不会检查RuntimeException异常!
  如果代码会产生RuntimeException异常,则需要通过修改代码进行避免。例如,若会发生除数为零的情况,则需要通过代码避免该情况的发生!
  4。Error
  和Exception一样,Error也是Throwable的子类。它用于指示合理的应用程序不应该试图捕获的严重问题,大多数这样的错误都是异常条件。
  和RuntimeException一样,编译器也不会检查Error。
  Java将可抛出(Throwable)的结构分为三种类型:被检查得异常(CheckedException),运行时异常(RuntimeException)和错误(Error)。
  (01)运行时异常
  定义:RuntimeException及其子类都被称为运行时异常。
  特点:Java编译器不会检查它。也就是说,当程序中可能出现这类异常时,倘若既没有通过throws声明抛出它,也没有用trycatch语句捕获它,还是会编译通过。例如,除数为零时产生的ArithmeticException异常,数组越界时产生的IndexOutOfBoundsException异常,failfail机制产生的ConcurrentModificationException异常等,都属于运行时异常。
  虽然Java编译器不会检查运行时异常,但是我们也可以通过throws进行声明抛出,也可以通过trycatch对它进行捕获处理。
  如果产生运行时异常,则需要通过修改代码来进行避免。例如,若会发生除数为零的情况,则需要通过代码避免该情况的发生!
  (02)被检查得异常
  定义:Exception类本身,以及Exception的子类中除了运行时异常之外的其它子类都属于被检查异常。
  特点:Java编译器会检查它。此类异常,要么通过throws进行声明抛出,要么通过trycatch进行捕获处理,否则不能通过编译。例如,CloneNotSupportedException就属于被检查异常。当通过clone()接口去克隆一个对象,而该对象对应的类没有实现Cloneable接口,就会抛出CloneNotSupportedException异常。
  被检查异常通常都是可以恢复的。
  (03)错误
  定义:Error类及其子类。
  特点:和运行时异常一样,编译器也不会对错误进行检查。
  当资源不足、约束失败、或是其它程序无法继续运行的条件发生时,就产生错误。程序本身无法修复这些错误的。例如,VirtualMachineError就属于错误。
  按照Java惯例,我们是不应该是实现任何新的Error子类的!
  对于上面的3种结构,我们在抛出异常或错误时,到底该哪一种?开头的B站视频中给出的建议是:对于可以恢复的条件使用被检查异常,对于程序错误使用运行时异常。

江南布衣女装个性服装,带你领略春夏风采江南布衣女装对于服装的把控其实源于对人的审美与精神的了解,2022年江南布衣女装就围绕着春来草生的主题,正式揭开了今年春夏季的帷幕,本季春来草生系列,从东方艺术中汲取设计灵感,……高龄生二胎,是冒险还是勇敢?随着国家二孩、三孩政策的实施,有不少年龄稍微大些的女性考虑再生一个孩子,相比于年轻的女性,大龄女青年可能会面临着不同的问题。针对大家关心的问题,下面来谈一下。年龄多大就不……亚足联如坐针毡!取消中国亚洲杯后,萨尔曼无奈妥协宣布最新决定北京时间6月29日,根据亚足联官方发布的消息可得知,他们是将提交亚洲杯申办意向书的截止时间进行了延长,从原来的6月30日延长到了7月15日,足足多出了半个月的时间。那么萨尔曼之……2015年NBA总决赛勇士vs骑士全部六场录像2015年NBA总决赛MVP:伊戈达拉勇士队对阵球队:勇士vs骑士比赛时间:2015年6月5日2015年6月17日比赛结果:勇士42骑士勇士vs骑士……华为再成立十大军团孟晚舟授旗据深圳商报,继去年成立首批五个军团后,华为内部论坛心声社区最新消息显示,3月30日,华为在深圳华为坂田基地K区举行第二批军团组建成立大会。华为董事、CEO任正非和公司主要高管出……欢呼吧,终于还是来了,各大APP开启一键关闭个性化广告在这个大数据时代,相信很多爱友都有一个共同的困惑,比如在刷抖音的时候,一个自己从来没有关注的账号,经常都能出现在自己视频列表里就像小编为了给爱友们带来一点福利,就在抖音找过几次……CCTV5直播!辽宁战山西,杨鸣拒爆冷,杨学增盼创奇迹休息了这么长时间,辽宁队的首个对手终于确定了,21淘汰广州队的山西队。由于长时间没有比赛,辽宁队每天的训练强度都非常高,期间还和山东队打了一场热身赛。郭艾伦、韩德君、丛明晨、李……五部高分励志电影,有你喜欢的吗大家好,这里是影像墙,今天给大家带来几部不错的励志电影一、《岁月神偷》60年代的香港,风云变幻。一面要忍受港英政府的压制,一面又受到内地运动的波及,更要面对不时登陆……被反噬!荷兰光刻机霸主阿斯麦,为何封神之路靠美国帮忙围堵技术阿斯麦摊牌了,改口说想跟中国合作!这是怎么回事呢?3月28日,阿斯麦CEO公开表示,不卖光刻机给中国,不是阿斯麦自己决定的。在光刻机领域,阿斯麦是当之无愧的一哥,订……要想心不累,就看淡一切人生,不需要太多的东西有健康的身体,有真挚的爱情,那也不是一种富有么?任何事,想不开,就不去想。任何东西,得不到,就不要去要。不……iPhone电池保养小技巧很多买了iPhone手机的用户都怕电池效率掉很快!又怕到官网换块电池太贵了,如果你不想要电池寿命掉很快的话,就赶紧跟我一起来学习如何保养iPhone手机的电池吧!不会的还不快快……杜锋与杨鸣的差距杜锋与杨鸣的差距自杜锋担任国家队主教练以来,不断有球迷质疑杜锋的能力,特别是辽宁队夺得本赛季总冠军之后,更是有不少球迷呼吁篮协用杨鸣取代杜锋担任国家队主教练。国家队……
未来几年最保命的方式,在这些方面,过低欲望的生活历经半生的人,只有这么一个心愿安身保命。自己过得比较顺畅,一家人都安好如初,没有遇到太多的风险和问题,日子自然就愈发滋润起来了。更何况,安好是幸福的根本。没有健康的……竹叶巧搭一物泡水,一杯下肚,清热泻火,搞定各式各样的口腔口腔溃疡你咋还在吃泻火药?今天教你用常见的淡竹叶来把口腔溃疡给解决掉,快点收藏起来,你肯定用得上。中医认为,引起口腔溃疡的原因是多样性的,但总的一点来说,就是上火了,但具……她是皮蓬前妻,将成乔丹儿媳,年近5旬风采依旧万人迷NBA美人志,今天给大家介绍的女星是拉萨尔皮蓬。拉萨尔皮蓬原名拉萨尔尤南,1974年出生于中东地区,但由于家庭条件优渥,她很小的时候便跟随父母移民到伊利诺伊州芝加哥。……ampampquot尿酸高ampampquot的5个饮食习惯尿酸是一种身体内的废物,在正常情况下,尿酸会被肾脏过滤掉,排出体外。但是,当尿酸过多时,肾脏就不能完全处理掉它,导致血液中尿酸水平升高,这就是尿酸高的症状。尿酸高不仅会影响身体……头秃老气骨架大,这些女明星的缺陷,被丑发型暴露得一览无余最近,娱乐圈可谓是热闹非凡,国内、国外各种红毯走秀数不胜数,于是红毯就成为了明星们争奇斗艳的地方,大家都想凭借自己的美貌、帅气在红毯上疯狂吸睛,来制造出圈名场面,从而使事业更上……湖南零陵乡村文化旅游春暖花开春节期间,湖南零陵涧岩头村每天车水马龙、人来人往,来此观古香、古色、古韵建筑的,品栩栩如生古彩绘、古浮雕、古石刻的,看古门头、古围墙、古工艺的人络绎不绝。村支书周瀚说:我……top命令详解top命令安装:bash:top:commandnotfoundDebianaptgetinstallprocpsUbuntuaptgetinstallprocpsAlpine……仁至义尽?美宇航员从联盟号转出,紧急情况下将乘龙飞船返回国际空间站上要有大事发生了吗?根据俄罗斯通讯社报道,国际空间站上将进行一次搬家任务,那便是把美国宇航员卢比奥的座椅从联盟MS22号载人飞船拆卸下来并转移到美国的龙飞船上,……PSVR2正式发售微软与英伟达签署十年合约PSVR2今日发售,《生化危机4:重制版》宣布VR模式开发中今天,索尼全新VR硬件PlayStationVR2在全球范围内正式发售,其中也包含了国行版本。官方给出的建议零……西双版纳限制房车打了多少人的脸?景洪市一则通告,搅起国内房车旅行的一池浑水。景洪在市郊开辟九处停车场,为房车提供专业服务。此后全市范围内的所有停车场、服务区,房车临时停车不得超过6小时。通告一出,……新疆巴里坤草原天鹅湿地游弋绘春景4日是一年节气的开端,立春节气到来,新疆东天山湿地天鹅起舞。达吾提热夏提摄成群天鹅在河水中游弋,栖息。达吾提热夏提摄气温回升,河水不再冰冷,天鹅自由自在地休憩。达吾……蒙自不卷局长,只卷最近蒙自文旅收获了一众好评!究竟是怎么回事一起去看看吧左右滑动查看更多我们先从前段时间火爆全网的文旅局长推荐说起热点正旺、潮流正……
友情链接:易事利快生活快传网聚热点七猫云快好知快百科中准网快好找文好找中准网快软网