资源描述:
《深入理解java异常处理机制-编程小技巧》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、深入理解java异常处理机制1.引子try・・・catch・・・finally恐怕是大家再熟悉不过的语句了,而且感觉用起来也是很简单,逻辑上似乎也是很容易理解。不过,我亲口体验的“教训”告诉我,这个东西可不是想象屮的那么简单、听话。不信?那你看看下而的代码,“猜猜”它执行后的结果会是什么?不要往后看答案、也不许执行代码看真正答案哦。如果你的答案是正确,那么这篇文章你就不用浪费吋间看啦。packageTest;publicclassTestException{publicTestException(){}booleante
2、stEx()throwsException{booleanret=true;try{ret二testExl();}catch(Exceptione){System,out.printin("testEx,catchexception'7);ret=false;throwe;}finally{System,out.println("testEx,finally;returnvalue=,z+ret);returnret;}}boolcantcstExl()throwsException{booleanret=true;tr
3、y{ret二testEx2();if(!ret){returnfalse;}System.out.println(〃testExl,attheendoftry");returnret;}catch(Exceptione){System,out.println("tcstExl,catchexception");ret=false;throwe;}finally{System,out.println(〃testExl,finally;returnvalue二〃+ret);returnret;booleantestEx2()
4、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.priestEx2,catchexception'7);ret二false;throwe;}finally{System,out.printin(/ztestEx2,finally;returnvalue二〃+ret);returnr
5、et;publicstaticvoidmain(String[]args){TcstExccptiontcstExccptionl二newTcstExccptionO;try{testExceptionl.testEx();}catch(Exceptione){e.printStackTrace();你的答案是什么?是下面的答案吗?i二2i=ltestEx2,catchexceptiontestEx2,finally;returnvalue=falsetestExl,catchexceptiontestExl,final
6、ly;returnvalue二falsetestEx,catchexceptiontestEx,finally;returnvalue二false如果你的答案真的如上而所说,那么你错啦。V,那就建议你仔细看一看这篇文章或者拿上面的代码按各种不同的情况修改、执行、测试,你会发现右很多事情不是原來想象中的那么简单的。现在公布止确答案:i=2i二1tcstEx2,catchexceptiontestEx2,finally;returnvalue二falsetestExl,finally;returnvalue=falsetes
7、tEx,finally;returnvalue二false注意说明:finally语句块不应该岀现应该出现return。上而的returnret最好是其他语句来处理相关逻辑。1.JAVA异常异常指不期而至的各种状况,女恥文件找不到、网络连接失败、非法参数等。异常是一个事件,它发生在程序运行期间,干扰了正常的指令流程。Java通过API屮Throwable类的众多子类描述各种不同的异常。因而,Ja眩异常都是对彖,是Throwable子类的实例,描述了出现在一段编码中的错误条件。当条件生成吋,错误将引发异常。Java异常类层
8、次结构图:图1Java异常类层次结构图在Java中,所有的异常都有一个共同的祖先Throwable(可抛出)。Throwable指定代码中可用异常传播机制通过Java应用程序传输的任何问题的共性。Throwable:有两个重要的子类:Exception(异常)和Error(错误),二者都是Jave异常处理的重要子类,