Подтвердить что ты не робот

Лучший способ оставить groovy script преждевременно (кроме system.exit(0))

как лучше всего выйти из 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
 }
4b9b3361

Ответ 1

Я уверен, что вы можете просто return из сценария.

Ответ 2

Просто используйте 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)
        }
    }
}

Ответ 3

Просто используйте 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
 }

Ответ 4

Используйте возврат 0

 read a row
 try{
   //make some verification here
 }catch(Exception e){
    logger("exception on something occurred "+e,e)
    return 0;
 }