# HG changeset patch # User František Kučera # Date 1388325010 -3600 # Node ID 714e4fac9cd0d62018e303c6467a4c6ed0430d34 # Parent b9af501399ef7b4595ac5d3b3f72493af724418d more precise exit/error codes diff -r b9af501399ef -r 714e4fac9cd0 java/sql-dk/src/info/globalcode/sql/dk/CLIStarter.java --- a/java/sql-dk/src/info/globalcode/sql/dk/CLIStarter.java Sat Dec 28 23:08:06 2013 +0100 +++ b/java/sql-dk/src/info/globalcode/sql/dk/CLIStarter.java Sun Dec 29 14:50:10 2013 +0100 @@ -46,16 +46,20 @@ */ public class CLIStarter implements ConfigurationProvider { + public static final int EXIT_SUCCESS = 0; // doc:success + public static final int EXIT_UNEXPECTED_ERROR = 1; // doc:unexpected error (probably bug) + public static final int EXIT_SQL_ERROR = 3; // doc:SQL error + public static final int EXIT_CLI_PARSE_ERROR = 4; // doc:CLI options parse error + public static final int EXIT_CLI_VALIDATE_ERROR = 5; // doc:CLI options validation error + public static final int EXIT_CONFIGURATION_ERROR = 6; // doc:configuration error + public static final int EXIT_FORMATTING_ERROR = 7; // doc:formatting error private static final Logger log = Logger.getLogger(CLIStarter.class.getName()); - private static final int EXIT_SUCCESS = 0; - private static final int EXIT_EXPECTED_ERROR = 3; - private static final int EXIT_SQL_ERROR = 4; private CLIOptions options; private Configuration configuration; public static void main(String[] args) { log.log(Level.FINE, "Starting " + Constants.PROGRAM_NAME); - int exitCode = EXIT_EXPECTED_ERROR; + int exitCode; if (args.length == 0) { args = new String[]{CLIParser.Tokens.INFO_HELP}; @@ -72,6 +76,7 @@ exitCode = EXIT_SUCCESS; } catch (CLIParserException e) { log.log(Level.SEVERE, "Unable to parse CLI options", e); + exitCode = EXIT_CLI_PARSE_ERROR; } catch (InvalidOptionsException e) { log.log(Level.SEVERE, "Invalid CLI options", e); for (InvalidOptionsException.OptionProblem p : e.getProblems()) { @@ -80,13 +85,16 @@ r.setParameters(new Object[]{p.getDescription()}); log.log(r); } + exitCode = EXIT_CLI_VALIDATE_ERROR; } catch (ConfigurationException e) { log.log(Level.SEVERE, "Configuration problem", e); + exitCode = EXIT_CONFIGURATION_ERROR; } catch (SQLException e) { log.log(Level.SEVERE, "SQL problem", e); exitCode = EXIT_SQL_ERROR; } catch (FormatterException e) { log.log(Level.SEVERE, "Formatting problem", e); + exitCode = EXIT_FORMATTING_ERROR; } System.exit(exitCode);