|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
JAVA是一种可以撰写跨平台应用软件的面向对象的程序设计语言,由升阳(SunMicrosystems)公司的詹姆斯·高斯林(JamesGosling)等人于1990年代初开发。非常处置非常处置是Java的一个壮大而有用的特征,使非常变得加倍简单利用,但同时也使我们更不简单恰到好处的利用DD《PracticalJava》Java的非常由try/catch/finally段组合,它们又能够恣意嵌套(nest)。假如程序中有多处非常产生,但前往给最后挪用真个却只要最初产生的非常,前边的多个非常会被掩蔽或丧失了DD假如我们不举行无效处置的话!可见,我们不该该疏忽非常,或是catch了结不处置,这将招致后序程序更容易堕落且没法很好判别毛病的泉源;同时,也不该该丧失在抛出过程当中一些非常,由于一般必要依据非常信息来发生复兴,而我们必需失掉每个应当失掉的非常信息。上面一个复杂的例子申明了上述Bad情形是会常常产生的,最少我就写过很多这类代:Ppackagetest;publicclassHideExceptionYN{publicstaticvoidmain(String[]args){HideExceptionYNhideexceptionyn=newHideExceptionYN();try{hideexceptionyn.foo();}catch(Exceptionex){System.out.println("Inmain,caughttheexception:"+ex.getMessage());}
}publicvoidfoo()throwsException{try{thrownewException("FirstE");}catch(Exceptionex){thrownewException("SecondE");}finally{thrownewException("ThirdException");}}}程序运转了局,仅打印出:Inmain,caughttheexception:ThirdException可见,FirstE和SecondE丧失了,这是我不肯看到的了局。详细的情形能够如许形貌:假如在try段中读取一个文件,大概会抛出FileNotFoundException或读取失利的IOException,而我们一般必需在finally段中对翻开的文件举行封闭,以开释non-memory资本,这里又大概抛出IOException,最初这个非常将掩蔽住后面抛出的一切非常,假如不处置,最后挪用端将只失掉最初这个非常!<P>依据履历,我们能够创立一个Vector对象,用来寄存程序运转过程当中抛出的一切非常,最初将这个Vector对象前往给挪用端,从而办理上述成绩。固然我们应当尽量的当场处置非常!这里切磋的是必要不休将内层非常往外层throw的情形。处置办法对照复杂,那就是在进进大概产生非常的办法时界说一个Vector(ArrayList)对象,然后在每一个Catch块中都将Exception对象增加到Vector中,然后在Finally块的最初判别Vector的size是不是为零,不为零则申明有非常产生了DD将其抛给挪用端便可。如许,挪用端就收到了从它入手下手到前往它的运转过程当中的一切非常。示例代码以下:Vectorvector=newVector();try{//….}catch(XxxExceptione){vector.add(e);}catch(YyyExceptione2){vector.add(e2);}finally{try{//…}catch(DddExcetpione3){vector.add(e3);}if(vector.size()!=0){thrownewUserDefineException(vector);}}//必要界说一个UserDefineException类:有一个Vector类的Field,并有setVector和getVector()办法便可。处置办法对照复杂,那就是在进进大概产生非常的办法时界说一个Vector(ArrayList)对象,然后在每一个Catch块中都将Exception对象增加到Vector中,然后在Finally块的最初判别Vector的size是不是为零,不为零则申明有非常产生了DD将其抛给挪用端便可。如许,挪用端就收到了从它入手下手到前往它的运转过程当中的一切非常。示例代码以下:Vectorvector=newVector();try{//….}catch(XxxExceptione){vector.add(e);}catch(YyyExceptione2){vector.add(e2);}finally{try{//…}catch(DddExcetpione3){vector.add(e3);}if(vector.size()!=0){thrownewUserDefineException(vector);}}//必要界说一个UserDefineException类:有一个Vector类的Field,并有setVector和getVector()办法便可。
因为能用到多少功能就用多少,不能用就不用!总的来说:要简单要性能好,可以不用框架。你说java复杂,就是因为你把java(j2ee)与这些框架混在了一起。 |
|