JAVA SE 7中的异常处理

  • 带资源的try语句

使用这种新的语法,在try语句中打开的资源可以自动清理。例如:

在使用完这个输入流后,不用费心关闭。JAVA运行时会自动关闭这个输入流。

可以在try块中包含多个资源,每个用分号隔开。例如:

  •  结合异常处理

如果多个异常处理程序都执行同一段代码,则可以把它们结合在一起。例如:

  •  final Re-throw

以上代码将无法编译,因为我们正试图抛出更通用的异常。为了编译代码,需要在throws 子句中添加Exception类型。如果compute方法重写的方法不声明抛出Exception 类型,这也将不能编译。Java SE 7 解决了这个问题,可以在catch块中添加final 关键字,如下所示:

catch (final Exception e){ ... }

在catch块中使用final关键字,使得能够抛出发生的确切子类异常。例如,如果IOException 发生,那么IOException将被抛出;如果ParseException 发生,那么ParseException将被抛出。final关键字允许抛出发生的确切异常,而不需要添加Exception类型到方法签名中。

 

留下评论