This is the mail archive of the cygwin-apps@cygwin.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Unifying Exception types in setup


On Sun, 16 Mar 2003, Max Bowsher wrote:

> Robert Collins wrote:
> > Max Bowsher wrote:
> >> Robert,
> >>
> >> Currently setup uses both <stdexcept> exceptions, and its own
> >> std::exception-derived Exceptions.
> >>
> >> I'm about to write a patch to convert the kludgy
> >>
> >> if (error)
> >>     exit(some_random_exit_code);
> >>
> >> bits to exceptions. Which kind shall I use, and would you be
> >> interested in a patch to convert all of them over to one kind?
> >>
> >> Max.
> >>
> >
> > I need to think on this.
> 
> OK. How about I convert the kludgy exits to Exceptions, and change them to
> <stdexcept>s later, along with the rest, if that's what you decide?

Just chaging exit() -> throw Exception won't help much. There should be
an exception handler installed who takes care of processing these 
exceptions i.e. shutdown setup with a simple message describing the
situation.

If you going to do this I suggest you to dereive a new class from 
exception or Exception, say FatalException. Then install a global handler,
which catches FatalException and displays a message then exits. This way 
the exit call will be in a single place and not scattered throught the 
code.

Btw why do you want to use a single exception type ? IMO, this way you 
defeat the purpose of exceptions to a certain degree. Different exceptions 
should cover different types of errors/events - say IOException, 
CRCExcepion, AuthenticationException.



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]