【问题标题】:Stop bash script if unchecked Java Exception is thrown如果抛出未经检查的 Java 异常,则停止 bash 脚本
【发布时间】:2010-10-09 21:10:13
【问题描述】:

我正在从 Bash 脚本中运行一个 java 程序。 如果java程序抛出未经检查的异常,我想停止bash脚本,而不是让脚本继续执行下一条命令。

如何做到这一点?我的脚本如下所示:

#!/bin/bash

javac *.java

java -ea HelloWorld > HelloWorld.txt

mv HelloWorld.txt ./HelloWorldDir

【问题讨论】:

    标签: java bash exception


    【解决方案1】:

    与汤姆·霍廷达成协议,

    要检查 Java 程序的退出代码,请在 Bash 脚本中:

    #!/bin/bash 
    
    javac *.java 
    
    java -ea HelloWorld > HelloWorld.txt 
    
    exitValue=$? 
    
    if [ $exitValue != 0 ] 
    then 
    exit $exitValue 
    fi 
    
    mv HelloWorld.txt ./HelloWorldDir
    

    【讨论】:

      【解决方案2】:
      #!/bin/bash
      
      function failure()
      {
          echo "$@" >&2
          exit 1
      }
      
      javac *.java || failure "Failed to compile"
      
      java -ea HelloWorld > HelloWorld.txt || failure "Failed to run"
      
      mv HelloWorld.txt ./HelloWorldDir || failure "Failed to move"
      

      您还必须确保 java 以非零退出代码退出,但这很可能是未捕获的异常。

      如果命令失败,基本上退出shell脚本。

      【讨论】:

        【解决方案3】:

        捕获异常,然后调用 System.exit。检查 shell 脚本中的返回码。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2021-09-03
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-12-18
          • 2019-08-19
          • 1970-01-01
          相关资源
          最近更新 更多