关于Java异常处理机制的深入理解.doc
上传人:yy****24 上传时间:2024-09-10 格式:DOC 页数:9 大小:68KB 金币:16 举报 版权申诉
预览加载中,请您耐心等待几秒...

关于Java异常处理机制的深入理解.doc

关于Java异常处理机制的深入理解.doc

预览

在线预览结束,喜欢就下载吧,查找使用更方便

16 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

关于Java异常处理机制的深入理解1引子try…catch…finally恐怕是大家再熟悉不过的语句了,而且感觉用起来也是很简单,逻辑上似乎也是很容易理解。不过,我亲自体验的“教训”告诉我,这个东西可不是想象中的那么简单、听话。不信?那你看看下面的代码,“猜猜”它执行后的结果会是什么?不要往后看答案、也不许执行代码看真正答案哦。如果你的答案是正确,那么这篇文章你就不用浪费时间看啦。packagemyExample.testException;publicclassTestException{publicTestException(){}booleantestEx()throwsException{booleanret=true;try{ret=testEx1();}catch(Exceptione){System.out.println("testEx,catchexception");ret=false;throwe;}finally{System.out.println("testEx,finally;returnvalue="+ret);returnret;}}booleantestEx1()throwsException{booleanret=true;try{ret=testEx2();if(!ret){returnfalse;}System.out.println("testEx1,attheendoftry");returnret;}catch(Exceptione){System.out.println("testEx1,catchexception");ret=false;throwe;}finally{System.out.println("testEx1,finally;returnvalue="+ret);returnret;}}booleantestEx2()throwsException{booleanret=true;try{intb=12;intc;for(inti=2;i>=-2;i--){c=b/i;System.out.println("i="+i);}returntrue;}catch(Exceptione){System.out.println("testEx2,catchexception");ret=false;throwe;}finally{System.out.println("testEx2,finally;returnvalue="+ret);returnret;}}publicstaticvoidmain(String[]args){TestExceptiontestException1=newTestException();try{testException1.testEx();}catch(Exceptione){e.printStackTrace();}}}你的答案是什么?是下面的答案吗?i=2i=1testEx2,catchexceptiontestEx2,finally;returnvalue=falsetestEx1,catchexceptiontestEx1,finally;returnvalue=falsetestEx,catchexceptiontestEx,finally;returnvalue=false如果你的答案真的如上面所说,那么你错啦。^_^,那就建议你仔细看一看这篇文章或者拿上面的代码按各种不同的情况修改、执行、测试,你会发现有很多事情不是原来想象中的那么简单的。现在公布正确答案:i=2i=1testEx2,catchexceptiontestEx2,finally;returnvalue=falsetestEx1,finally;returnvalue=falsetestEx,finally;returnvalue=false2基础知识2.1相关概念例外是在程序运行过程中发生的异常事件,比如除0溢出、数组越界、文件找不到等,这些事件的发生将阻止程序的正常运行。为了加强程序的鲁棒性,程序设计时,必须考虑到可能发生的异常事件并做出相应的处理。C语言中,通过使用if语句来判断是否出现了例外,同时,调用函数通过被调用函数的返回值感知在被调用函数中产生的例外事件并进行处理。全程变量ErroNo常常用来反映一个异常事件的类型。但是,这种错误处理机制会导致不少问题。Java通过面向对象的方法来处理例外。在一个方法的运行过程中,如果发生了例外,则这个方法生成代表该例外的一个对