boolean (@NotNull final PsiMethod method) { if (!PsiUtil.canBeOverridden(method)) return false; final Predicate<PsiMethod> methodContainsThrownExceptions = m -> !ArrayUtil.isEmpty(m.getThrowsList().getReferencedTypes()); final Stream<PsiMethod> overridingMethods = JavaOverridingMethodUtil.getOverridingMethodsIfCheapEnough(method, null, methodContainsThrownExceptions); if (overridingMethods == null) return true; return overridingMethods.anyMatch(m -> isThrownIn(m) || isInThrowsListOf(m)); }