Rethrow异常真实的应用

Rah*_*tar 6 java exception java-7

在Java 7中增加了Rethrow Exception功能.我知道它的概念,但我想看到它的真实应用以及为什么需要这个功能?

use*_*900 2

使用重新抛出异常和更具包容性的类型检查 功能

在 Java SE 7 中,您可以在 rethrowException 方法声明的 throws 子句中指定异常类型 FirstException 和 SecondException

当您想要声明可以抛出的特定异常时(主要是当您捕获一般错误时)

例如,请参阅精确重新抛出示例

public static void precise() throws ParseException, IOException{
    try {
        new SimpleDateFormat("yyyyMMdd").parse("foo");
        new FileReader("file.txt").read();
    } catch (Exception e) {
        System.out.println("Caught exception: " + e.getMessage());
        throw e;
    }
}
Run Code Online (Sandbox Code Playgroud)

这也使您的代码符合 Sonar 的原始异常规则

请注意,您也可以类似地捕获Throwable