In article <slrnibboof.29uv.usenet-nos...@guild.seebs.net> Seebs <usenet-nos...@seebs.net> wrote: >> * raising `Exception` rather than a subclass of it is uncommon. > >Okay. I did that as a quick fix when, finally having hit one of them, >I found out that 'raise "Error message"' didn't work. :) I'm a bit unsure >as to how to pick the right subclass, though.
For exceptions, you have two choices: - pick some existing exception that seems to make sense, or - define your own. The obvious cases for the former are things like ValueError or IndexError. Indeed, in many cases, you just let a work-step raise these naturally: def frobulate(self, x): ... self.table[x] += ... # raises IndexError when x out of range ... For the latter, make a class that inherits from Exception. In a whole lot of cases a trivial/empty class suffices: class SoLongAndThanksForAllTheFish(Exception): pass def ...: ... if somecondition: raise SoLongAndThanksForAllTheFish() Since Exception provides a base __init__() function, you can include a string: raise SoLongAndThanksForAllTheFish('RIP DNA') which becomes the .message field: >>> x = SoLongAndThanksForAllTheFish('RIP DNA') >>> x.message 'RIP DNA' -- In-Real-Life: Chris Torek, Wind River Systems Salt Lake City, UT, USA (40°39.22'N, 111°50.29'W) +1 801 277 2603 email: gmail (figure it out) http://web.torek.net/torek/index.html
-- http://mail.python.org/mailman/listinfo/python-list