java - "Rethrowing Exceptions with Improved Type Checking"在 Java 6 及之前的版本中可用吗?

标签 java

我可以在之前的 Java 6 中应用“通过改进的类型检查重新抛出异常”吗?在 Java 规范中,他们说此功能仅适用于 Java 7 及更高版本?但是,我尝试用 Java 6 编写一些源代码并应用相同的方法并得到相同的结果......我不知道我的代码哪里不正确。

我附上了一些图片:

  • FirstException, SecondException ---> 实现异常
  • SourceCode1 ---> 原始源代码(Java 6 和 7 正确)
  • SourceCode2 ---> 我可以使用这种方式来替换 Java 6 中更精确的重新抛出异常吗?
  • SourceCode3 ---> Java 7 中更精确的重新抛出异常

不知道SourceCode2和SourceCode3是一样的还是不一样的?但是,当我执行两者时,我得到相同的结果..

我很困惑 SourceCode2 是否是另一种在 Java 中使用更精确的重新抛出异常的方法?

以及,我们为什么要使用此功能?

谢谢你的帮助

FirstException

SecondException

SourceCode1 (both java 6 and 7)

SourceCode2 (java 6)

SourceCode3 (java 7)

最佳答案

Here是对 Oracle 指南的引用。引用:

in Java SE 7, you can specify the exception types FirstException and SecondException in the throws clause in the rethrowException method declaration.

所以答案是否定的。在 Java 6 中,您不能更改继承方法的声明,即使在抛出异常方面也是如此。

编辑

在 Java 6 中,如果声明了方法,则抛出,比方说 - Exception,那么所有继承自该方法的类都必须具有抛出 Exception 的方法。无论。在 Java 7 中,后代类的方法在重新抛出方面可以更加精确。

关于java - "Rethrowing Exceptions with Improved Type Checking"在 Java 6 及之前的版本中可用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47854492/

相关文章:

java - 可以从 GWT 中的 Javascript 访问 Java 对象吗?

java - 二级缓存永不命中using、spring3、hibernate4、ehcache?

java - Java 中的列表和列表<?>

java - 如何在启动时在 Web 应用程序中调用 Servlet (doGet)?

java - 通过使用 Google Apps 创建的网站向用户发送电子邮件需要哪个主机名?

java - DateTimeFormatter 个位数月份

java - Windows 7 上的 AVD 无法连接到 Linux 服务器

java - 添加额外的 getter 和 setter 后出现 JPA 异常

java - 类集之间的上下文和 Uri

java - weblogic 上的 Web 服务客户端应用程序调用 Web 服务