java语言基础-8-异常处理机制

java语言基础-8-异常处理机制

ID:19276761

大小:139.50 KB

页数:7页

时间:2018-09-30

java语言基础-8-异常处理机制_第1页
java语言基础-8-异常处理机制_第2页
java语言基础-8-异常处理机制_第3页
java语言基础-8-异常处理机制_第4页
java语言基础-8-异常处理机制_第5页
资源描述:

《java语言基础-8-异常处理机制》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、JAVA语言基础-8Ø课堂讨论要点:1.异常与错误a.错误(error):语法错误,逻辑错误错误是系统的设计缺陷,必须返回软件公司修复。b.异常(exception)现代软件在运行过程中,往往容易受到周边因素的影响,比如网络意外中断,磁盘文件被误删除,用户录入了不正确的数据,导致软件运行中断,我们把这种不是因为软件自身原因,而是软件运行环境的意外,导致的运行停止,我们把其叫做异常。异常不是软件本身的问题,软件本身没有语法和逻辑问题,而是周边环境发生了意外,是软件设计者始料不及的。对于异常而言,软

2、件开发者必须做好恰当的异常处理工作,比如,当系统发现网络意外终止,应把程序挂起,提示用户异常原因,引导用户解决异常,解决完毕后,将积极重新尝试未完成操作,使程序能够得以继续运行。2.异常处理几点说明异常对象在系统运行过程中自动创建,当然所创建的对象类型是根据不同类型的异常而有差异的,系统会把出现异常的具体信息以及导致异常的原因写在这个对象中。异常对象主要有两个属性:a.detailMessage该异常的具体信息b.cause说明了导致这个异常的原因。异常位置的跟踪和定位:e.printStack

3、Trace();由于try块中可能有多条语句,异常爆发了,对象被抛出了,到底是那条语句导致的呢?printStackTrace()会详细的告诉你对应的位置。异常被捕获处理后,异常try…catch..结构后的语句将继续运行,程序不会中止。但是try块中发生异常的语句之后的语句将不再运行。1.try块try块中一般放置编程人员认为最可能抛出异常的高危语句,try块中的语句如果抛出了异常,那么该语句之后的语句将不再运行(try块中).该语句抛出的异常,将经过catch模组过滤后,被处理或者无法处理被

4、抛出方法。为了提高程序,请尽量减少try块体积,有些不必要的语句,不要放在try块中。2.Catch块的级联由于一个try块中的语句,可能会抛出多种异常,对于程序员来说,应该尽早对其有预期,部署多个catch块对异常进行捕获处理,以免造成程序停机。但可抛出的异常种类实在难以预测,难免有漏网之鱼,所以,一般来说,我们catch级联块的最后会安排一个“万能”异常捕获者,来抓捕所有的漏网之鱼。Java.lang.Exception是万能捕获者,其时所有异常类的父类,根据父类引用变量可以指向所有子类对象

5、的原则,其一般放在catch级联块最后一环对遗漏的异常进行捕获。但其处理缺乏针对性,较为粗糙,建议具体的异常还是用具体的捕获者来捕获处理。Exceptioncatch模组应避免放在级联块的第一个,否则后头的catch模组因代码无法到达,将全部失效,编译器将敏锐地发现这个问题,导致编译失败。3.Finally块坚强的finally块,无论try块中有异常,无异常,有无漏网之鱼均可运行,也不怕try中中途return.最多只能有一个finally语句块。特殊情况下可能会中断finally语句的执行:

6、(1)finally语句块本身产生异常;(2)执行finally语句块的线程死亡;(3)程序中执行了”System.exit(0)”的方法;(4)计算机掉电。为了有效的释放在try语句运行过程中申请的资源,finally块为此而成。一般语句结构如下:a.try…catch…finallyb.try…finally..c.try..catch…异常的基本处理原则:一个方法内的异常,要么抛出,要么捕获。如果本方法不适合处理,则可抛给上级方法处理,层层上报,直到合适的方法处理掉这个异常。4.throw

7、和throwsthrow抛出通常情况下,是由系统帮助我们创建对应的异常对象,然后抛出。在有些特定情况下,我们也可以手动创建异常对象,手动抛出!if(b<0)thrownewRuntimeException("b不能为负数!",null);一个方法的最后部分将用来声明这个方法会抛出什么样的异常,以方便调用该方法的方法对其做好提前准备。一个方法可能抛出的异常不止一个,所以必须用throwsXxxxmethodNamethrowsAException,BException…..如果一个类中会抛出异常,

8、该异常并不在这个类中被捕获,就必须做好方法的异常声明工作。一个异常要么被捕获处理,要么被抛出,如被抛出方法,则方法必须声明异常信息。任何一个方法,将默认在其签名上写上throwsRuntimeException;5、异常的传播过程:如果没有catch语句块的捕获异常,异常将沿着方法的调用栈一直向上传播。如果传播的过程中一直没有catch语句块捕获,则最终传播到main方法,最后从main方法抛出,由java运行环境(JRE)来处理。Inthefollowingcode,whichlineswil

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。