monotone-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Monotone-devel] "throw usage(); " or "N(); " for argument checking?


From: Timothy Brownawell
Subject: Re: [Monotone-devel] "throw usage(); " or "N(); " for argument checking?
Date: Sun, 04 Jan 2009 16:41:46 +0000

On Sun, 2009-01-04 at 11:24 -0500, LeJacq, Jean Pierre wrote:
> On Saturday 2009 January 03 20:56:52 Timothy Brownawell wrote:
> > Many commands check for eg the right number of arguments like so:
> >
> >   if (args.size() != 3)
> >     throw usage(execid);
> >
> > where others do
> >
> >   N(args.size() == 0,
> >     F("no arguments needed"));
> >
> >
> > This ought to be made consistent, does anyone object to using the
> > 'throw usage();' version everywhere?
> 
> I recommend the inverse. Exceptions should be reserved for, well
> "exceptional" situations. Validation of inputs doesn't fall into
> this category and is more properly handled by normal control loops.

"N(false, message)" results in "throw informative_faulure(message)", the
question is what to throw rather than whether to throw.

A command that does "throw usage()" gives the same result as calling
"mtn help <command>", printing full usage info to stderr, where N()
results in "mtn: misuse: <message>" on stderr and will put a note in any
debug log.


-- 
Timothy

Free (experimental) public monotone hosting: http://mtn-host.prjek.net





reply via email to

[Prev in Thread] Current Thread [Next in Thread]