Остановите сценарий bash, если выброшено исключение Java Exception - PullRequest
5 голосов
/ 25 февраля 2009

Я запускаю Java-программу из скрипта Bash. Если java-программа выдает непроверенное исключение, я хочу остановить сценарий bash, а не сценарий, продолжающий выполнение следующей команды.

Как это сделать? Мой скрипт выглядит примерно так:

#!/bin/bash

javac *.java

java -ea HelloWorld > HelloWorld.txt

mv HelloWorld.txt ./HelloWorldDir

Ответы [ 3 ]

12 голосов
/ 25 февраля 2009

По соглашению с Томом Хотином

Чтобы проверить код завершения Java-программы, в скрипте Bash:

#!/bin/bash 

javac *.java 

java -ea HelloWorld > HelloWorld.txt 

exitValue=$? 

if [ $exitValue != 0 ] 
then 
exit $exitValue 
fi 

mv HelloWorld.txt ./HelloWorldDir
10 голосов
/ 25 февраля 2009

Перехватите исключение и затем вызовите System.exit. Проверьте код возврата в сценарии оболочки.

3 голосов
/ 25 февраля 2009
#!/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 завершает работу с ненулевым кодом выхода, но это вполне вероятно для необработанного исключения.

В основном завершите работу сценария оболочки в случае сбоя команды.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...