我在Java 7中添加了Rethrow Exception功能。我知道它的概念,但是我想看看它的实际应用以及为什么需要此功能?

最佳答案

我将以here为例
这是示例:

  static class FirstException extends Exception { }
  static class SecondException extends Exception { }

  public void rethrowException(String exceptionName) throws FirstException, SecondException {
    try {
      if (exceptionName.equals("First")) {
        throw new FirstException();
      } else {
        throw new SecondException();
      }
    } catch (FirstException e) {
      throw e;
    }catch (SecondException e) {
      throw e;
    }
  }

这将同时使用Java 6和7进行编译。

如果要保留方法签名中的检查异常,则必须在Java 6中保留繁琐的catch子句。

在Java 7中,您可以通过以下方式进行操作:
public void rethrowException(String exceptionName) throws FirstException, SecondException {
  try {
    if (exceptionName.equals("First")) {
      throw new FirstException();
    } else {
      throw new SecondException();
    }
  } catch (Exception e) {
    throw e;
}

因此,您的好处是您没有那么麻烦的catch子句。

09-11 19:33