Groovy jenkinsfile-检查是否定义了方法

Groovy jenkinsfile-检查是否定义了方法,groovy,jenkins-pipeline,dsl,Groovy,Jenkins Pipeline,Dsl,仅当函数存在时,我才尝试执行阶段: if (binding.variables.containsKey(functionName)){ stage ("execute") { script{ "${functionName}"(config) } } } 问题是binding.variables只返回变量(我应该猜到了)。有没有办法检查函数是否已定义?MethodNotFound是异常层次结构中

仅当函数存在时,我才尝试执行阶段:

if (binding.variables.containsKey(functionName)){
    stage ("execute") {
      script{
        "${functionName}"(config)
      }
    }
  }

问题是binding.variables只返回变量(我应该猜到了)。有没有办法检查函数是否已定义?

MethodNotFound是异常层次结构中的已检查异常,很难在groovy或Java flow中使用
try..catch
block捕获,因此很难实现您的目标


如果Jenkins中没有定义方法或DSL,Jenkins将在解析脚本或声明性管道时通过异常-在这种情况下,我认为您永远无法捕获它

有一种方法可以检查是否定义了方法(不确定函数),但没有一种方法仅在声明性语法中存在的情况下执行阶段。您使用的是脚本式还是声明式?检查方法是否存在而不是函数是否存在可以吗?我使用的是声明性的。但是函数将在脚本{}闭包中执行