本文将详细解释Java 7的异常新特性mutilcatch是如何工作的。文章内容质量很高,我就分享给大家作为参考。希望大家看完这篇文章后对相关知识有一定的了解。
Java7增强了Java的异常处理机制,主要表现在三个方面:捕捉多种异常类型(multi batch);重新引发异常;用资源试试。
捕获多个异常类型。
从Java7开始,您可以在一个catch块中捕获许多类型的异常。添加多批处理功能的主要目的是减少重复代码,减少过多的异常捕获(如捕获捕获(异常e))。
如果您正在开发这样的应用程序,这个程序可以灵活地将数据复制到数据库或文件中。清单1(copytodatabaseofile . Java)模拟了这个程序,并展示了catch模块中重复代码的现象:
Java代码
//copytodatabaseofile . javaimportjava . io . ioexception;import Java . SQL . SqLexception;publicclasscopytodatabaseofile { publicationstationmain(String[]args){ try { copy();} catch(IOExceptionex){ system . out . println(ex . getmessage());//additionalhandlercode } catch(sqlexception ex){ system . out . println(ex . getmessage());//additionalhandlercode that ' sidantialtorprevioushandler的//code } } static invitcopy()throwsioneexception,SQLException { if(math . random)(0.5)thrownew ioexception(' cannotcopytofile ');elsethorowwsqexception(' cannotcopytodatodatabase ');}}清单1:CopyToDatabaseOrFile.java。
Java7克服了代码重复的问题。您只需要指定要在catch块中处理的多个异常,按顺序排列这些异常,并用“|”分隔每个异常。例如:
Java代码
尝试{ copy();} catch(IOException | sqlexception ex){ system . out . println(ex . getmessage());}现在,当copy()方法抛出任何类型时,都会被catch块捕获。
当在catch中声明各种异常时,默认情况下,声明的异常是最终的,这意味着不能再修改对异常的引用。在上面的例子中,ex不能再分配给另一个异常(如ex=new MyException())。
我希望,我会在这里分享一下Java 7的异常新特性mutilcatch是什么样的。
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/44645.html