boolean (PsiCatchSection @NotNull [] catchSections) { for (String exceptionQn : Arrays.asList(JAVA_LANG_ASSERTION_ERROR, JAVA_LANG_ERROR, JAVA_LANG_THROWABLE)) { for (PsiCatchSection section : catchSections) { PsiType catchType = section.getCatchType(); if (catchType == null) continue; List<PsiType> catchExceptionPsiTypes; if (catchType instanceof PsiDisjunctionType) { catchExceptionPsiTypes = ((PsiDisjunctionType)catchType).getDisjunctions(); } else { catchExceptionPsiTypes = Collections.singletonList(catchType); } if (ContainerUtil.exists(catchExceptionPsiTypes, cet -> cet.equalsToText(exceptionQn))) { return ControlFlowUtils.isEmptyCodeBlock(section.getCatchBlock()); } } } return false; }