Re: new style exception handleing
Ola Natvig wrote: Peter Hansen wrote: I can't actually think of a reason to need to base an exception on a new-style class, but perhaps you have a good one... It's quite simple to bypass the problem, it was more the reason I was wondering about too. Basically because fixing it without killing backward compatibility with string exceptions is hard :) Doesn't mean people aren't trying though (Google the python-dev archives, as well as the python-list ones). Cheers, Nick. -- Nick Coghlan | [EMAIL PROTECTED] | Brisbane, Australia --- http://boredomandlaziness.skystorm.net -- http://mail.python.org/mailman/listinfo/python-list
Re: new style exception handleing
Google is your friend. This has been discussed a lot in the past. For instance, google for the thread, "Exceptions as New Style Classes", there was also a PEP by Steven Taschuk, IIRC. Michele Simionato -- http://mail.python.org/mailman/listinfo/python-list
Re: new style exception handleing
Peter Hansen wrote: Ola Natvig wrote: Does anybody know why it's not possible to raise Exceptions which are types (new-style-classes). I know all standard exceptions are classic classes, but if you make a custom exception which both inherits from a exception class and a new-style one the it causes a type error when raised. >>> class b(Exception, object): pass This might not help you, but have you considered just making your old-style class *contain a reference* to an instance of whatever new-style class you want it to contain? Then the issue goes away. I can't actually think of a reason to need to base an exception on a new-style class, but perhaps you have a good one... -Peter It's quite simple to bypass the problem, it was more the reason I was wondering about too. -- -- Ola Natvig <[EMAIL PROTECTED]> infoSense AS / development -- http://mail.python.org/mailman/listinfo/python-list
Re: new style exception handleing
Ola Natvig wrote: Does anybody know why it's not possible to raise Exceptions which are types (new-style-classes). I know all standard exceptions are classic classes, but if you make a custom exception which both inherits from a exception class and a new-style one the it causes a type error when raised. >>> class b(Exception, object): pass This might not help you, but have you considered just making your old-style class *contain a reference* to an instance of whatever new-style class you want it to contain? Then the issue goes away. I can't actually think of a reason to need to base an exception on a new-style class, but perhaps you have a good one... -Peter -- http://mail.python.org/mailman/listinfo/python-list
new style exception handleing
Hi all Does anybody know why it's not possible to raise Exceptions which are types (new-style-classes). I know all standard exceptions are classic classes, but if you make a custom exception which both inherits from a exception class and a new-style one the it causes a type error when raised. >>> class b(Exception, object): pass >>> raise b Traceback (most recent call last): File "", line 1, in -toplevel- raise b TypeError: exceptions must be classes, instances, or strings (deprecated), not type This is weird, I think. Are there any issues about raising types as exceptions that I can't think of ? -- -- Ola Natvig <[EMAIL PROTECTED]> infoSense AS / development -- http://mail.python.org/mailman/listinfo/python-list