On Thu, Nov 13, 2008 at 5:11 PM, Emanuele D'Arrigo <[EMAIL PROTECTED]> wrote:
> I'm pondering on what is a bit of a philosophical dilemma.
> When should I throw an exception and when should I not?
>
> Suppose I have myFunc1() calling myFunc2() which in turn calls myFunc3
> ().
> Suppose myFunc3() has detected a problem. What should it do?
>
> Throw an exception, forcing myFunc2() to handle it and/or trigger
> another exception for myFunc1() to deal with? Or should it simply
> return a meaningful error code, for myFunc2() and myFunc1() to handle
> as an option but not forcing them to do so?

Depends on how serious the error is (e.g. str.find() returns -1 rather
than raising an exception if it can't find the substring), but 98% of
the time, you'll want to raise an exception; it's Pythonic, idiomatic,
and expected. You'd have to have a *really* good reason to use an
error value/code instead.
Python is not C, and despite what Joel has said On Software, error
codes generally suck.

Cheers,
Chris
-- 
Follow the path of the Iguana...
http://rebertia.com

>
> Manu
> --
> http://mail.python.org/mailman/listinfo/python-list
>
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to