On 15 Jan 2015, at 10:56, Maruan Sahyoun <sahy...@fileaffairs.de> 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.

> - 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.

> - 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?
> 
> Maruan
> 
> 
> Am 15.01.2015 um 19:03 schrieb John Hewson <j...@jahewson.com>:
> 
>> 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 <sahy...@fileaffairs.de> 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 <andr...@lehmi.de>:
>>> 
>>>> 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 <sahy...@fileaffairs.de> 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
>>> 
>> 
> 

Reply via email to