捕获多个异常,而不是在混淆的构建中捕获异常

时间:2017-11-14 08:16:47

标签: java try-catch proguard obfuscation

我使用了具有多个异常的catch块,这在未经模糊处理的构建中运行良好,但是在混淆的构建中没有捕获异常。

我正在使用proguard-maven-plugin

try {
  ...
} catch (ServletException | IOException e){
  ...
}

我需要为此添加任何proguard规则吗?

因为它的工作正常当我把我的代码编写为

try {
  ...
} catch (ServletException e) {
  ...
} catch (IOException e) {
  ...
}

2 个答案:

答案 0 :(得分:1)

Proguard可能存在错误。 https://sourceforge.net/p/proguard/bugs/607/ 很遗憾没有提供解决方案。 我建议避免多次捕获,直到它被修复,如果可能的话。

答案 1 :(得分:0)

当有可能引发没有任何关系的异常(父母子女)时,可以使用多捕获异常,例如IOExceptionArithmeticException以及NullPointerException。但是您不能使用多个catch块,例如IOExceptionFileNotFoundException,因为IOExceptionFileNotFoundException的父级。

java7中给出了多个catch块,只是为了程序员的方便。它不会影响执行时间。