@Contract(pure = true)
      private void analyzeCodeBlock(final @Nullable PsiElement block) {
        if (block == null) return;

        block.accept(new JavaRecursiveElementWalkingVisitor() {
          @Override
          public void visitCallExpression(@NotNull PsiCallExpression callExpression) {
            final List<PsiClassType> exceptions = ExceptionUtil.getUnhandledExceptions(callExpression, block);
            for (PsiClassType exception : exceptions) {
              addExceptionInducer(exception, callExpression);
            }
          }

          @Override
          public void visitThrowStatement(@NotNull PsiThrowStatement statement) {
            final PsiExpression exception = statement.getException();
            if (exception == null) return;

            final PsiType type = exception.getType();
            if (type == null) return;

            addExceptionInducer(type, statement);
          }
        });
      }
@Contract(pure = true)
      private void analyzeCodeBlock(final @Nullable PsiElement block)