private static @Nullable String mayIgnoreVMException(PsiParameter parameter, PsiCodeBlock block) {
        PsiType type = parameter.getType();
        if (!type.equalsToText(CommonClassNames.JAVA_LANG_THROWABLE) &&
            !type.equalsToText(CommonClassNames.JAVA_LANG_EXCEPTION) &&
            !type.equalsToText(CommonClassNames.JAVA_LANG_RUNTIME_EXCEPTION) &&
            !type.equalsToText(CommonClassNames.JAVA_LANG_ERROR)) {
          return null;
        }
        // Let's assume that exception is NPE or SOE with null cause and null message and see what happens during dataflow.
        // Will it produce any side-effect?
        String className = type.equalsToText(CommonClassNames.JAVA_LANG_ERROR) ? "java.lang.StackOverflowError"
                                                                               : CommonClassNames.JAVA_LANG_NULL_POINTER_EXCEPTION;
        Project project = parameter.getProject();
        PsiClassType exception = JavaPsiFacade.getElementFactory(project).createTypeByFQClassName(className, parameter.getResolveScope());
        PsiClass exceptionClass = exception.resolve();
        if (exceptionClass == null) return null;

        DfaValueFactory factory = new DfaValueFactory(project);
        ControlFlow flow = ControlFlowAnalyzer.buildFlow(block, factory, true);
        if (flow == null) return null;
        var interpreter = new CatchDataFlowInterpreter(exception, parameter, flow);
        DfaMemoryState memState = new JvmDfaMemoryStateImpl(factory);
        DfaVariableValue stableExceptionVar = PlainDescriptor.createVariableValue(factory, new LightParameter("tmp", exception, block));
        DfaVariableValue exceptionVar = PlainDescriptor.createVariableValue(factory, parameter);
        memState.applyCondition(exceptionVar.eq(stableExceptionVar));
        memState.applyCondition(exceptionVar.cond(RelationType.IS, DfTypes.typedObject(exception, Nullability.NOT_NULL)));
        return interpreter.interpret(memState) == RunnerResult.OK ? className : null;
      }
private static @Nullable String mayIgnoreVMException(PsiParameter parameter, PsiCodeBlock block)