35

过早离开 groovy 脚本的最佳方法是什么?

groovy 脚本从给定的信息文件中读取一行,然后进行一些验证工作,以防验证失败(数据不一致)脚本需要提前离开流程。然后系统将再次调用该脚本以读取同一信息文件的下一行

代码示例:

 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
 }
4

4 回答 4

30

我很确定您可以仅从return脚本中进行。

于 2012-09-20T02:59:39.287 回答
28

只需使用System.exit(0).

try {
    // code
} catch(Exception e) {
    logger("exception on something occurred "+e,e)
    System.exit(0)
}

您可以使用退出状态代码来指示您遇到问题的行。

零值表示一切正常,正值表示行号。然后,您可以让您的 groovy 脚本将起始行作为输入参数。


这是一个幼稚的实现,如果一行为空,则只有一个愚蠢的异常。

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)
        }
    }
}
于 2012-09-12T11:18:59.630 回答
2

使用返回0

 read a row
 try{
   //make some verification here
 }catch(Exception e){
    logger("exception on something occurred "+e,e)
    return 0;
 }
于 2019-01-28T05:56:00.233 回答
2

只需使用返回:

 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
 }
于 2016-12-16T13:22:57.653 回答