# [EMAIL PROTECTED] / 2007-01-04 18:45:07 -0600:
> On Thu, January 4, 2007 6:17 pm, Roman Neuhauser wrote:
> > Ok, but what harm has been done? something() presumably did the
> > fopen() for a reason, and couldn't work without the file handle and
> > couldn't succeed anyway.
> >
> > Sure, the program leaves the normal path at this moment unexpectedly,
> > and I can understand your frustration, but it has a bug, right? And
> > although the program contains a bug it hasn't crashed, it just entered
> > whatever orderly cleanup-and-exit path you had prepared.
> >
> > If fopen() didn't throw and the programmer didn't check the return
> > value (catch the exception in your version), you'd be screwed not
> > even knowing it.
> >
> > I think you brought a solid example of superiority of exceptions over
> > returning error codes.
> 
> over returning error codes and not DOING anything with them?  Sure.
> 
> Over well-written code that does something with the returned error
> codes? no.  Just a stylistic difference really, if all developers
> consistently did their error-checking, and did it fairly well.
> 
> Alas, they don't.

That's exactly the point. Programmers don't check return values,
programs have bugs.
 
> And, suppose it's NOT an fopen() that was the problem deep in the guts
> of the other guy's code.
> 
> Now you are catching an error and you have NO IDEA what the [bleep] to
> do with it.

If you really don't know what to do, then the right thing is probably an
orderly exit of the application, no?

> At least with error code returns, you are USUALLY dealing with a
> specific way to get those codes (in PHP, not C-style shell-style
> pass-the-buck error code bubble-up).
 
With error codes, you are USUALLY dealing with crashes and wrong
behavior. Compiled programs segfault, programs in PHP produce
unspecified numbers of E_NOTICE, E_WARNING, and quite easily drop dead
with an E_FATAL before returning to where you'd be complaining that you
don't know what to do with the error!

> And, of course, you just ignored the question of another catch block
> doing something you wish it didn't do...

I don't know what that means.

-- 
How many Vietnam vets does it take to screw in a light bulb?
You don't know, man.  You don't KNOW.
Cause you weren't THERE.             http://bash.org/?255991

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to