> Am 08.05.2017 um 01:48 schrieb Igor Mironchik <igor.mironc...@gmail.com>:
> 
> Hi,
>>>> Using exceptions in arguments parser is something that just cannot be 
>>>> justified.
>>>> 
>>> Why not?
>> Even in the danger of starting a huge debate about "exceptions vs return 
>> error code" here are my thoughts about it:
>> 
>> Exceptions should just be used for... well, /exceptional/ cases.
>> 
>> So what would be an "exceptional case" for a command line parser then? 
>> Certainly not wrongly provided arguments. Humans tend to misspell words all 
>> the time, so that's "the norm": business as usual for a command line parser 
>> to validate the input and inform the user appropriately (with a usage help, 
>> similar spelled commands etc.). Nothing which cries "exception!" here IMHO.
>> 
>> The only thing I could think of in a 10 second brainstorming which could be 
>> considered "exceptional" is when e.g. "stdin" (or some socket even from 
>> which to read commands, but even this would be a bordercase, as it could be 
>> considered "normal" that a socket cannot be opened) cannot be opened for 
>> reading (which is somewhat a constructed example, as arguments are usually 
>> passed as input parameters to main() anyway - but you get the idea).
>> 
>> The internet is full of articles - and opinions - about when to use 
>> exceptions, and when not (and we haven't even touched the topic of 
>> "unchecked vs checked exceptions" - at least in the Java camp that's all the 
>> rage ;)).
> 
> I will not start that holly war about what you said.... :) I just say that I 
> will think about more and more user friendly messages on wrong user input.

Hold on: the one (exceptions vs return error codes) has /nothing/ to do with 
the other (user-friendly error messages). Just to be on the same page here...
 
> I wanted to simplify a life of a developer and a user of console application. 
> But developer will be informed about "errors" through the exceptions.

Yes, your intentions were clear. But did you just read what I wrote about 
/when/ to use exceptions?

In fact, you're not - necessarily - simplifying "the life of a developer" by 
using exceptions. Au contraire, you force them to use patterns like RAII (which 
is mostly a good thing by itself), think about whether their code is 
"exception-safe" etc.

There is probably a reason why completely new languages like Swift come 
completely without exception handling - which raises interesting questions (pun 
intended), as the main "GUI framework" (Cocoa/ObjC based) still uses - and 
throws - exceptions then and when... but that's yet another story ;)

Cheers,
  Oliver
_______________________________________________
Interest mailing list
Interest@qt-project.org
http://lists.qt-project.org/mailman/listinfo/interest

Reply via email to