|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
诸如RMI,EJB等一些技术并不是你说的那么复杂,而是它们把一些复杂的工具封装成不复杂的工具了,理解这些工具是需要些时间。我问你,.net里有这些工具吗?要简单多少?。
之前我们先容过Java7的最新特征更新和代码示例,明天我们来看看Java7非常处置方面的功效加强。来自Coin项目标又一个渺小言语加强已被包括在Java7中:由谷歌兼任工程师兼Java讲师NealGafter提出的Java加强非常处置功效。OpenJDK开辟的向导者JoeDarcy已在其博客上公布了这个变更。
此次变化增添了两处对非常处置机制的渺小加强:
◆Multicatch:开辟者如今可以在一个catch代码块中捕捉多个非常范例;
◆FinalRethrow:它可让开辟者捕捉一个非常范例及其子范例,而且无需向办法声明中增添抛出子句,就可以从头将其抛出。
已往我们在捕捉多个非常范例时,常常会利用以下范例的代码:
} catch (FirstException ex)
{
logger.error(ex);
throw ex;
} catch(SecondException ex)
{
logger.error(ex);
throw ex; }
可是以上代码除冗杂外没有甚么长处。一个办理举措是找出这两个非常范例的配合子范例,只对其举行捕捉并抛出。可是这类办法一般会捕捉一些你其实不必要的非常。
如今借助于新增的功效,开辟者可使用以下代码:
} catch (FirstException | SecondException ex) {
logger.error(ex);
throw ex;
}
这类代码看上往要简便明晰的多。
第二个加强功效要庞大一些。假设开辟者但愿捕捉一切非常,在举行需要的几个操纵后,再将其抛出。就代码编写而言并非一件难事,可是开辟者必需在办法声明中增添一个抛出子句,来办理本人代码收回的新非常。而如今借助于FinalRethrow,开辟者无需增添一个非常抛出子句就可以完成此项义务:
try {
// some code
} catch (final Throwable ex) {
// some more code
throw ex;
}
经由过程利用final关头字,开辟者能够抛出所需的正确静态范例非常。如许假如一个IOException非常产生,那末IOException将被抛出。固然,开辟者必需声明不被捕捉的非常。假如开辟者在try代码块(在//somemorecode部分)中没有捕捉任何非常,抛出子句则与之前完整不异;反之假如捕捉到某些非常,开辟者则能够举行响应处置。
Java7中的multi-catch是一个十分好的功效,可是finalrethrow对程序员来讲其实不经常使用。
再说说缺点:首先java功能强大的背后是其复杂性,就拿web来说,当今流行的框架有很多,什么struts,spring,jQuery等等,而这无疑增加了java的复杂性。 |
|