boolean (@NotNull ConditionalThrowToInstruction instruction, @NotNull PsiElement throwingElement, PsiElement elementToJumpTo) { final PsiElement finallyBlock = findEnclosingFinallyBlockElement(throwingElement, elementToJumpTo); if (finallyBlock == null) return false; List<PsiElement> unhandledExceptionCatchBlocks = finallyBlockToUnhandledExceptions.computeIfAbsent(finallyBlock, k -> new ArrayList<>()); int index = unhandledExceptionCatchBlocks.indexOf(elementToJumpTo); if (index == -1) { index = unhandledExceptionCatchBlocks.size(); unhandledExceptionCatchBlocks.add(elementToJumpTo); } // first three return instructions are for normal completion, return statement call completion and unchecked exception throwing completion resp. instruction.offset = 3 + index; addElementOffsetLater(finallyBlock, false); return true; }