Jenkinsfile: Почему `java.lang.NoSuchMethodError: Никакой такой метод DSL` не перехвачен? - PullRequest
0 голосов
/ 18 октября 2019

У меня есть следующий код в Jenkinsfile, который вызывает «необязательный» метод, и, если он не существует, он просто напечатает сообщение

...
try {
   verifyDeployment(pipelineParams)
} catch (err) {
   echo "[INFO] No `verifyDeployment` defined, thus ignoring this step"
}
...

Однако, когда я запускаю конвейер, catchКажется, не работает на я получаю следующую ошибку:

java.lang.NoSuchMethodError: No such DSL method 'verifyDeployment' found among steps

Что мне не хватает?

Ответы [ 2 ]

0 голосов
/ 18 октября 2019

Вы используете неправильный синтаксис Groovy. См. Правильный синтаксис для отлова исключений: Синтаксис для отлова исключений

try { 
   //Protected code 
} catch(ExceptionName e1) {
   //Catch block 
}
0 голосов
/ 18 октября 2019

Оказывается, вам нужно явно поймать NoSuchMethodError следующим образом

...
try {
   verifyDeployment(pipelineParams)
} catch (NoSuchMethodError ex) {
   echo "[INFO] No `verifyDeployment` defined, thus ignoring this step"
}
...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...