欢迎来到天天文库
浏览记录
ID:41032328
大小:22.00 KB
页数:4页
时间:2019-08-14
《Java编程中异常处理的优劣之道》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、Java程序异常处理的特殊情况1、不能在finally块中执行return,continue等语句,否则会把异常“吃掉”;2、在try,catch中如果有return语句,则在执行return之前先执行finally块请大家仔细看下面的例子:以下是引用片段:publicclassTryTest{publicstaticvoidmain(String[]args){try{System.out.println(TryTest.test());//返回结果为true其没有任何异常}catch(Exceptione){System.out.pri
2、ntln("Exceptionfrommain");e.printStackTrace();}doThings(0);}publicstaticbooleantest()throwsException{try{thrownewException("Somethingerror");//第1步.抛出异常}catch(Exceptione){//第2步.捕获的异常匹配(声明类或其父类),进入控制块System.out.println("Exceptionfrome");//第3步.打印returnfalse;//第5步.return前控制转移到
3、finally块,执行完后再返回(这一步被吃掉了,不执行)}finally{returntrue;//第4步.控制转移,直接返回,吃掉了异常}}publicstaticvoiddoThings(inti){try{if(i==0){//在执行return之前会先执行finallyreturn;}intt=100/i;System.out.println(t);}catch(Exceptionex){ex.printStackTrace();}finally{System.out.println("finally");}}}Java编程中的异
4、常处理是一个很常见的话题了,几乎任何一门介绍性的Java课程都会提到异常处理。不过,我认为很多人其实并没有真正掌握正确处理异常情况的方法和策略,最多也就不过了解个大概,知道点概念。本文就对三种不同程度和质量的Java异常处理进行了讨论,所阐述的处理异常的方式按手法的高下分为: 好,不好和恶劣三种。 同时向你提供了一些解决这些问题的技巧。 首先解释一些java异常处理中必须搞清楚的定义和机制。Java语言规范将自Error类或RuntimeException类衍生出来的任何违例都称作“不可检查”(Unchecked)异常;其他所有异常则
5、称作“可检查”(Checked)异常。 所谓可检查异常,是指我们应该自行处理的异常。至于处理的手段,要么加以控制(trycatch),要么通告(throws)他们有可能产生。通常,应捕捉那些已知如何处理的异常,而通告那些不知如何处理的异常。 而对那些不可检查异常来说,他们要么在我们的控制之外(Error),要么是我们首先就不该允许的情况(RuntimeException). 至于异常的指定,Java的规则非常简单:一个方法必须通告自己可能产生的所有可检查异常。编写自己的方法时,并不一定要通告出方法实际可能产生的每一个异常对象,要想理解
6、什么时候必须要方法的throws丛句来通告异常,就必须知道对一个异常来说,他只有可能在下面四种情况下才会产生: 1.调用了可能产生异常的方法。比如BufferedReader类的readLine方法。该方法通告java.io.IOException异常 2.侦测到一个错误,并用throw语句产生异常。 3.出现一个编程错误。比如a[-1]=0。 4.Java产生内部错误。 如果出现头两种情况之一,必须告诉打算使用自己方法的人:假如使用这个方法,可能造成一个异常的产生(即在方法头上使用throws),一个简单的记忆方法: 只要含有
7、throw,就要通告throws。如果一个方法必须同时处理多个异常,就必须在头内指出所有异常。就像下例展示的那样,用逗号对他们进行分割:classAnimation{ publicImageloadImage(Strints)throwsEOFException,MalformedURLException { ………… }} 然而,我们不需要通告内部java错误,也不应该通告自RuntimeException衍生出来的异常。 好的异常处理 好异常处理提供了处理程序错误的统一机制。事实上,Java语言通过向调用者提出异常警告的
8、方式而显著地提升了软件开发中的异常处理能力。这种方式把Java语言中的“方法(method)”进行了扩展和增强,使之包括了自身的错误条件。下面就让我们看一个例子,这个例子说明了这
此文档下载收益归作者所有