> Inheriting from SyntaxError doesn't work!  When I create a new exception, I
> generally subclass from the built-in exception it most resembles, in case
> there was some reason to also catch it via an ancestor.  But I'm not sure if
> that is really all that useful an idea in practice.  How do you folk do it?

If somebody wanted to catch a ValueError, would they also mean to
catch my error? (The same with SyntaxError and so on). Probably not.
If they would, then I raise the relevant exception. It is very
possible to accidentally catch the wrong thing if you put too much in
a try block, and I don't like making that any easier.

-- Devin

On Fri, Jan 6, 2012 at 10:24 PM, Chris Fuller
<cfuller...@thinkingplanet.net> wrote:
> I had an interesting experience today.
>
> Python 2.7.1 (r271:86832, Nov 28 2010, 19:31:37)
> [GCC 4.4.5] on linux2
> Type "help", "copyright", "credits" or "license" for more information.
>>>> class Foo(Exception):
> ...  def __init__(self, a,b,c):
> ...   self.args = (a,b,c)
> ...
>>>> raise Foo(1,2,3)
> Traceback (most recent call last):
>  File "<stdin>", line 1, in <module>
> __main__.Foo: (1, 2, 3)
>>>> class Foo(SyntaxError):
> ...  def __init__(self, a,b,c):
> ...   self.args = (a,b,c)
> ...
>>>> raise Foo(1,2,3)
> Traceback (most recent call last):
>  File "<stdin>", line 1, in <module>
> __main__.Foo: None
>
>
> Inheriting from SyntaxError doesn't work!  When I create a new exception, I
> generally subclass from the built-in exception it most resembles, in case
> there was some reason to also catch it via an ancestor.  But I'm not sure if
> that is really all that useful an idea in practice.  How do you folk do it?
>
> By the way, inheriting from StandardError, the direct ancestor of
> SyntaxError, works as expected, and its parent is Exception.
>
> Cheers
> _______________________________________________
> Tutor maillist  -  Tutor@python.org
> To unsubscribe or change subscription options:
> http://mail.python.org/mailman/listinfo/tutor
_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to