boolean (@NotNull PsiClassType exceptionClassType, @NotNull Collection<PsiType> sneakedExceptionTypes) { for (PsiType sneakedExceptionType : sneakedExceptionTypes) { if (sneakedExceptionType.equalsToText(JAVA_LANG_THROWABLE) || sneakedExceptionType.equals(exceptionClassType)) { return true; } } final PsiClass unhandledExceptionClass = exceptionClassType.resolve(); if (null != unhandledExceptionClass) { for (PsiType sneakedExceptionType : sneakedExceptionTypes) { if (sneakedExceptionType instanceof PsiClassType) { final PsiClass sneakedExceptionClass = ((PsiClassType) sneakedExceptionType).resolve(); if (null != sneakedExceptionClass && unhandledExceptionClass.isInheritor(sneakedExceptionClass, true)) { return true; } } } } return false; }