- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
CoreJava.Day11_3(异常处理之try-catch-finally)
CoreJava.Day11_3(异常处理之try-catch-finally)
上节课我们介绍了异常的产生和传递过程,怎么产生的,new完以后throw出来的。异常本身是一个对象,new完以后用throw语句抛出来。怎么传,沿着方法调用链反向传,直到传到虚拟机里面。那么异常的处理我们上节课讲了一种,throws,这是一种声明。这种声明表示本方法如果出现某种异常,那么在我这不做处理。也就是说我这个方法可能会抛出某种异常,由调用这个方法的方法去处理。上节课咱们讲了国务院开会的事,合起来大家都不管。
,,,,,,,,,,,,,,,,,,,,,,,,这节课咱们着重介绍积极处理异常的方式,try-catch,叫捕获异常,这是一种积极的处理。try-catch的代码是什么样的?首先是一个try关键字,后面跟一个代码块。try{},后面可以写catch,圆括号,里面一个异常的引用,后面跟一花括号,catch(IoException,,,,,,,,e){}。当然,一个try后面可以跟不止一个catch。
,,,,,,,,,,,,,,,,,,,,,,,,好了,现在try里面有好多代码,如果没有异常,出来以后不进catch,往后走。但如果try里出现了异常,这个异常对象出现在try块里,try块马上跳出来,比如一共五行代码,第三行出异常了,那后面两行不做了。往哪跳呢,往catch里跳。好比说在try块里捕捉到了一个IOException,那么从有异常的语句出来以后会进这个catch,你不是catch(IOexception,,,,,,,,e)吗?就好像调方法一样,好几个方法参数不同。那么根据实参找一个相应的实参,而且这个异常对象还可以传给e,跟实参传形参一样。也就是说这个e就是你捕捉到的那个异常对象,比如try块里捕捉到了一个IOException对象,那它就会传给e,而流程也会进入这个catch。
,,,,,,,,,,,,,,,,,,,,,,,,那么把catch里的程序执行完了之后,这个异常就没了。再从catch往后这个程序继续正常的往后执行,这个异常就跟没有了一样。这个catch就是当异常发生的时候来运行的代码,前面不是说了吗?为了提高程序的容错性,要写一段代码,正常情况下不运行,程序出错时运行,这实际上就是catch。
,,,,,,,,,,,,,,,,,,,,,,,,那咱们把上节课的代码改造一下,一个村出洪水了村长确实可以向县长报告。作为一个村长也不可能组织民兵抢险什么的,那么县长也会向上级报告,但是到了市长这个级别的,再往上推就不合适了,选择让他不上报。市长ma咱们让他用try-catch去捕获这个异常,注意我try-catch的范围,我把这三句话放在try块里,try{System.out.println(ma,,,,,,,,1);mb(a);System.out.println(ma,,,,,,,,2);}后面来一个catch,catch(){System.out.println(ma,,,,,,,,3);}那么你先告诉我这个catch都有可能捕捉到什么异常?
,,,,,,,,,,,,,,,,,,,,,,,,这个得mb,mb不是说了吗?可能抛IO,可能抛SQL。那我try块里可能捕捉到的不是IO,就是SQL,那它可以选择对IO做一个catch,在这打印Catch,,,,,,,,IOException,catch(IOException,,,,,,,,e){System.out.println(Catch,,,,,,,,IOException);}那么我们想一想,mb把一个IO异常抛给了ma,抛到try块这里,刚好被这个try块捕获吧?这个try块好比张开一张大网一样,落入我这个网中的对象都会被捕捉。那么ma,,,,,,,,2还会不会被打印?不会,有异常就会马上跳出try块。就进catch了,异常对象就被传给e了,这个e就不被你捕捉到了异常对象,就像拿实参传形参一样,那么打印了这个Catch,,,,,,,,IOException之后,ma,,,,,,,,3会打印吗?会的,再往后呢,程序返回,打印main,,,,,,,,2,程序是正常结束的。
,,,,,,,,,,,,,,,,,,,,,,,,从出了catch以后就跟完全没异常一样,一切正常了。那为什么还是编译不通过呢?还有SQL怎么办呢?mb抛SQL你ma怎么处理了?你看ma现在既没有捕获又没有throws,当然ma这里可以写一个throws,,,,,,,,SQLException,自然灾害我负责,武装抗税我不管,完全可以。当然ma也可以选择同时catch这两个异常,再加一个catch呗,try后面可以跟一堆catch。现在try后面跟俩catch,加上catch(SQLExcepti
您可能关注的文档
最近下载
- 日语入门第一课(课件).ppt VIP
- 心内科进修汇报ppt.pptx
- 2014年10月自考《英语一》讲义-Unit-11-(含课文、生词表、课后练习及答案).doc VIP
- 7.2各民族谁也离不开谁教学设计.docx VIP
- 七年级生物上册 第二单元 第二章 第四节 单细胞生物教案课件 .ppt VIP
- 《条形统计图》教学设计.docx VIP
- 2014年10月自考《英语一》讲义-Unit-09-(含课文、生词表、课后练习及答案).doc VIP
- 部编版语文六年级上册夏天里的成长 第2课时-优课件.ppt VIP
- 浙江省台州市玉环市2023-2024学年六年级上学期期末科学试卷.docx VIP
- Python金融数据分析与应用课件 第5章 数据建模:有监督学习.pptx VIP
文档评论(0)