深入理解java异常处理机制-Java开发Java经验技巧.doc:..深入理解java异常处理机制-编程开发技术深入理解java异常处理机制原文出处:CSDN博客?1・引子try-catch---finally恐怕是大家再熟悉不过的语句了,而且感觉用起来也是很简单,逻辑上似乎也是很容易理解。不过,我亲口体验的“教训”告诉我,这个东西可不是想象中的那么简单、听话。不信?那你看看下面的代码,“猜猜”它执行后的结果会是什么?不要往后看答案、也不许执行代码看真正答案哦。如果你的答案是正确,那么这篇文章你就不用浪费时间看啦。packageTest;lassTestException{publicTestException(){}booleantestExOthrowsException{booleanret二true;try{ret二tcstExl();}catch(Exceptione){System・(/ztestEx,catchexception");ret二false;throwe;}finally{System,(z,testEx,finally;returnvalue=/z+ret);returnret;}}booleantestExl()throwsException{booleanret=true;try{ret二testEx2();if(!ret){returnfalse;}System,("testExl,attheendoftry/z);returnret;}catch(Exceptione){System・(z,testExl,catchexception'7);ret二false;throwe;}finally{System,(z,testExl,finally;returnvalue二〃+ret);returnret;}booleantestEx2()throwsException{booleanret=true;try{intb=12;intc;for(inti=2;i>=-2;i—){c=b/i;System,(〃i二〃+i);}returntrue;}catch(Exceptione){System・(z,testEx2,catchexception'7);ret二false;throwe;}finally{System,(z,testEx2,finally;returnvalue二〃+ret);returnret;}}publicstaticvoidmain(String[]args){TestExceptiontestExceptionl二newTestException();try{();}catch(Exceptione){();}}你的答案是什么?是下面的答案吗?i=2i=ltestEx2,catchexceptiontestEx2,finally;returnvalue二falsetcstExl,catchcxceptiontestExl,finally;returnvalue=falsetestEx,catchexceptiontestEx,finally;returnvalue二false如果你的答案真的如上面所说,那么你错啦。〔八,那就建议你仔细看一看这篇文章或者拿上面的代码按各种不同的情况修改、执行、测试,你会发现有很多事情不是原来想彖小的那么简单的。现在公布正确答案:1=2i=ltestEx2,catchexceptiontestEx2,final1y;returnvalue=falsetestExl,finally;returnvalue二falsctestEx,finally;returnvalue=false注意说明:final1y语句块不应该岀现应该岀现returno上面的returnret最好是其他语句來处理相关逻辑。,如:文件找不到、网络连接失败、非法参数等。异常是一个事件,它发生在程序运行期间,干扰了正常的指令流程。Java通过API中Throwable类的众多子类描述各种不同的异常。因而,Je腹异常都是对象,是ThrowablcT类的实例,描述了出现在一段编码中的错误条件。当条件生成时,错误将引发异常。Java界常类层次结构图:图l?Java异常类层次结构图?在Java中,所冇的异常都冇一个共同的祖先Throwable(可抛出)°Throwable指定代码中可用异常
深入理解java异常处理机制-Java开发Java经验技巧 来自淘豆网m.daumloan.com转载请标明出处.