boolean (Set<? extends PsiClassType> thrownTypes, PsiTypeElement caughtTypeElement, boolean runtimeExceptionSeen, Set<? super PsiType> caughtTypes) { final PsiType caughtType = caughtTypeElement.getType(); if (CommonClassNames.JAVA_LANG_RUNTIME_EXCEPTION.equals(caughtType.getCanonicalText())) { runtimeExceptionSeen = true; } else if (thrownTypes.isEmpty() && CommonClassNames.JAVA_LANG_EXCEPTION.equals(caughtType.getCanonicalText())) { if (!runtimeExceptionSeen) { final PsiClassType runtimeExceptionType = TypeUtils.getType(CommonClassNames.JAVA_LANG_RUNTIME_EXCEPTION, caughtTypeElement); registerError(caughtTypeElement, Collections.singletonList(runtimeExceptionType), caughtTypeElement); } } final List<PsiType> maskedExceptions = findMaskedExceptions(thrownTypes, caughtType, caughtTypes); if (maskedExceptions.isEmpty()) { return runtimeExceptionSeen; } registerError(caughtTypeElement, maskedExceptions, caughtTypeElement); return runtimeExceptionSeen; }