> On 15 Jan 2015, at 11:21, Maruan Sahyoun <[email protected]> wrote: > > >> On 15 Jan 2015, at 10:56, Maruan Sahyoun <[email protected]> wrote: >>> >>> so if I understand an summarize correctly we'd change >>> >>> - the usage() for all to return 1 >> >> Except when the user has asked for the usage via -h, because that’s a >> success, not a failure. >> > > as there is no -h at the moment …
Ok, well that makes it easy. >>> - print messages on exceptions to System.err >>> - rethrow the exception so java can handle it if it will terminate >>> afterwards anyway >> >> Yes, I think we mostly do that… if not in all cases, then we should be doing >> that, at least for IOException. >> > > not for the ones which haven't been touched for a while I had a feeling that might be the case… we should fix that too. >>> - use something above 2 and below 126 as an error code for System.exit() if >>> rethrowing doesn't make sense >> >> 1 is fine, as I’d expect you’ll be dealing with exceptions due to invalid >> passwords, encryption, etc. which are everyday problems. >> > > ok - let's use 1 > > I'll open an issue for that and set it to 2.1 - code cleanup can be done as > part of PDFBOX-2576. Great. > >>> OK? >>> >>> Maruan >>> >>> >>> Am 15.01.2015 um 19:03 schrieb John Hewson <[email protected]>: >>> >>>> If the usage was printed due to invalid command line parameters, then the >>>> convention on Unix is to return exit code 1. We should be doing that too. >>>> >>>> Note than if Java throws an exception which causes main() to exit and >>>> there is no catch clause, then java will return a non-zero code of its own >>>> accord. If we’re catching fatal exceptions in main, then we should >>>> System.exit(1) afterwards. >>>> >>>> -- John >>>> >>>>> On 15 Jan 2015, at 09:13, Maruan Sahyoun <[email protected]> wrote: >>>>> >>>>> Yes, >>>>> >>>>> current behavior within the tools >>>>> usage(): some tools have a System.exit, some don't and for the ones they >>>>> have the exit code is not always the same. >>>>> -main() there is no System.exit for the ones I looked at in case of an >>>>> error. Only an error message is written to System.err >>>>> >>>>> You'd rather expect System.exit > 0 in case there is an issue in main >>>>> processing and then System.exit as part of usage makes sense. If there is >>>>> none on main there shouldn't be one on usage(). >>>>> >>>>> So I'd remove it on usage() too. >>>>> >>>>> WDYT? >>>>> >>>>> Maruan >>>>> >>>>> Am 15.01.2015 um 18:00 schrieb Andreas Lehmkuehler <[email protected]>: >>>>> >>>>>> Hi, >>>>>> >>>>>> Am 15.01.2015 um 17:20 schrieb John Hewson: >>>>>>> Only if there's a non-zero number used as the argument. >>>>>> Yes, but IMO such a value is only useful if there is any processing >>>>>> issue. Maruans question targets those calls within the usage message >>>>>> which is shown only if there is any issue with the given commandline >>>>>> parameters. >>>>>> >>>>>> I'd remove such calls. >>>>>> >>>>>>> -- John >>>>>>> >>>>>>>> On 15 Jan 2015, at 06:06, Maruan Sahyoun <[email protected]> >>>>>>>> wrote: >>>>>>>> >>>>>>>> Hi, >>>>>>>> >>>>>>>> do we need System.exit() in our command line tools usage messages? >>>>>>>> Opinions? Don't see a benefit of having them. >>>>>>>> >>>>>>>> BR >>>>>>>> Maruan >>>>>> >>>>>> BR >>>>>> Andreas LEhmkühler >>>>> >>>> >>> >> >
