我使用了具有多个异常的catch块,这在未经模糊处理的构建中运行良好,但是在混淆的构建中没有捕获异常。
我正在使用proguard-maven-plugin
try {
...
} catch (ServletException | IOException e){
...
}
我需要为此添加任何proguard规则吗?
因为它的工作正常当我把我的代码编写为
时try {
...
} catch (ServletException e) {
...
} catch (IOException e) {
...
}
答案 0 :(得分:1)
Proguard可能存在错误。 https://sourceforge.net/p/proguard/bugs/607/ 很遗憾没有提供解决方案。 我建议避免多次捕获,直到它被修复,如果可能的话。
答案 1 :(得分:0)
当有可能引发没有任何关系的异常(父母子女)时,可以使用多捕获异常,例如IOException
和ArithmeticException
以及NullPointerException
。但是您不能使用多个catch块,例如IOException
和FileNotFoundException
,因为IOException
是FileNotFoundException
的父级。
java7中给出了多个catch块,只是为了程序员的方便。它不会影响执行时间。