Java异常机制处理

Java异常机制处理

ID:43324835

大小:67.05 KB

页数:6页

时间:2019-09-29

Java异常机制处理_第1页
Java异常机制处理_第2页
Java异常机制处理_第3页
Java异常机制处理_第4页
Java异常机制处理_第5页
资源描述:

《Java异常机制处理》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、Java异常处理机制异常:程序运行时可能产生的错误。异常处理会将改变程序的控制流程,让程序有机会对错误作出处理。在用传统的语言编程吋,程序员只能通过函数的返冋值来发出错误信息。1.try和catch语句(用来处理异常)•将要处理的代码放入try块中,然后创建相应的catch块的列表。如果牛成都异常与catch中提到的相匹配,那么catch条件中的块语句就被执行。try块后可能有许多catch块,每个都处理不同的异常。每个catch屮的参数都是Exception的子类。2.finally语句•finally语句定义一个总是执行的代码,而不考虑异常是

2、否被捕获。3•异常处理机制(逐层上抛)try{//程序块}catch(ExceptionTypele){//对ExceptionTypel的处理}catch(ExceptionTypc2e){//对ExceptionType2的处理throw(c);〃再抛出这个“异常”}finally{}mam()方法MethodB:辺用MethodA的方法try{MethodA:包含异常处理的方法IIcodethatmightthrowaparticularexceptionzss}catch(MyExceptionTypee){Q3//codetoexecu

3、teifaMyExceptionTypeexceptionisthrown^}catch(Exceptione){j②〃codetoexecuteifageneralExceptonexceptionsthrown&}finaliy{R//codetoexecuteexceptforSystemexit()必③当抛出界常时,自上向下匹配catcho应该把子类放前面,因为放后面的话永远没机会执行。如果方法中的一个语句抛出一个没有在相应的try/catch块中处理的异常,那么这个异常就被抛出到调用方法中。如果异常'也没有在调用方法中被处理,它就被抛出

4、到该方法的调用程序。这个过程要一直延续到异常被处理。如果异常到这时还没被处理,它便回到mainOo如果Java虚拟机追溯到方法调用栈最底部mainO方法时,如果仍然没有找到处理异常的代码块,将按照下面的步骤处理:第一、调用异常的对象的printStackTreiceO方法,打印方法调用栈的异常信息。第二、女H果出现异常的线程为主线程,则整个程序运行终止;如果非主线程,则终止该线程,其他线程继续运行。通过分析思考可以看出,越早处理异常消耗的资源和时间越小,产生影响的范围也越小。因此,不要把自己能处理的界常也抛给调用者。还有一点,不可忽视:final

5、ly语句在任何情况下都必须执行的代码,这样可以保证一些在任何情况下都必须执行代码的可靠性。比如,在数据库查询异常的吋候,应该释放JDBC连接等等ofinally语句先于return语句执行,而不论其先后位置,也不管是否try块出现异常。4.异常类图VirtualMachineErroxr—ErrorOutOfNe»or)errorStackO/erfLovErroiAVTErrorThrovaJtl^BcceptloQ_ArithMtlc&cceptionIKjllPointerExceptioIndoxOutOfBoundsdeceptionI

6、OExcepti—flleNotTaundETxeptionerror表示恢复不是不可能但很困难的情况下的一种严重问题。比如说内存溢出。不可能指望程序能处理这样的情况。exception表示一种设计或实现问题,可以捕捉。也就是说,它表示如果程序运行正常,从不会发生的情况。5.throw引起一个异常•调用申明抛出异常,用來通知上级来处理。Throws抛出异常交给调用该方法的方法处理,即:publicclassTest{publicstaticvoidmain(StringEJargs){Test2test2=newTest2();try{Systc

7、m.out.println(,zinvokethemethodbegin!〃);test2.method();System,out.printin(^invokethemethodend!〃);}catch(Exceptione){System.out.println("catchException!,z);}}}classTest2{publicvoidmethod()throwsException{System,out.println("methodbegin!〃);inta=10;intb=0;intc二a/b;System,out.pri

8、ntin(z/methodend!zz);}}invokethemethodbegin!methodbegin!catchExcepti

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

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

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