IG: handle classes and lambda's correctly in "Overly broad 'catch' block" inspection

This commit is contained in:
Bas Leijdekkers
2015-05-15 16:38:35 +02:00
parent e39efb9ede
commit b2e87fe559
2 changed files with 18 additions and 9 deletions
@@ -242,17 +242,15 @@ public class ExceptionUtils {
}
@Override
public void visitMethodCallExpression(@NotNull PsiMethodCallExpression expression) {
super.visitMethodCallExpression(expression);
final PsiMethod method = expression.resolveMethod();
collectExceptionsThrown(method, m_exceptionsThrown);
}
public void visitClass(PsiClass aClass) {}
@Override
public void visitNewExpression(@NotNull PsiNewExpression expression) {
super.visitNewExpression(expression);
final PsiMethod method = expression.resolveMethod();
collectExceptionsThrown(method, m_exceptionsThrown);
public void visitLambdaExpression(PsiLambdaExpression expression) {}
@Override
public void visitCallExpression(PsiCallExpression callExpression) {
super.visitCallExpression(callExpression);
collectExceptionsThrown(callExpression.resolveMethod(), m_exceptionsThrown);
}
@Override
@@ -85,4 +85,15 @@ public class TooBroadCatchBlock{
return false;
}
}
void m3() {
try {
new Object() {
void f() throws FileNotFoundException {
throw new FileNotFoundException();
}
};
throw new IOException();
} catch (IOException e) {}
}
}