List<PsiElement> (@NotNull PsiClassType throwType) { List<PsiElement> blocks = new ArrayList<>(); for (int i = myCatchParameters.size() - 1; i >= 0; i--) { ProgressManager.checkCanceled(); PsiParameter parameter = myCatchParameters.get(i); PsiType catchType = parameter.getType(); if (ControlFlowUtil.isCaughtExceptionType(throwType, catchType)) { blocks.add(myCatchBlocks.get(i)); } } if (blocks.isEmpty()) { // consider it as throw at the end of the control flow blocks.add(null); } return blocks; }