Ответ 1
Я уверен, что вы можете просто return
из сценария.
как лучше всего выйти из groovy script преждевременно?
A groovy script считывает строку из заданного информационного файла, затем выполняет некоторую проверку, в случае сбоя проверки (несогласованные данные) script должен покинуть поток преждевременно. Затем система снова вызовет script, чтобы прочитать следующую строку одного и того же информационного файла
Пример кода:
read a row
try{
//make some verification here
}catch(Exception e){
logger("exception on something occurred "+e,e)
//here need to leave a groovy script prematurely
}
Я уверен, что вы можете просто return
из сценария.
Просто используйте System.exit(0)
.
try {
// code
} catch(Exception e) {
logger("exception on something occurred "+e,e)
System.exit(0)
}
Вы можете использовать код состояния выхода, чтобы указать, в какой строке у вас были проблемы.
Нулевое значение будет означать, что все в порядке, а положительным значением будет номер строки. Затем вы можете позволить своему groovy script взять начальную строку в качестве входного параметра.
Это наивная реализация с просто глупым исключением, если строка пуста.
file = new File(args[0])
startLine = args[1].toInteger()
file.withReader { reader ->
reader.eachLine { line, count ->
try {
if (count >= startLine) {
if (line.length() == 0) throw new Exception("error")
println count + ': ' + line
}
} catch (Exception ignore) {
System.exit(count)
}
}
}
Просто используйте return:
read a row
try{
//make some verification here
}catch(Exception e){
logger("exception on something occurred "+e,e)
//here need to leave a groovy script prematurely
return
}
Используйте возврат 0
read a row
try{
//make some verification here
}catch(Exception e){
logger("exception on something occurred "+e,e)
return 0;
}