On Wed, 28 Sep 2011 09:58:49 +1000 Steven D'Aprano <st...@pearwood.info> wrote:
> Mac Ryan wrote: > > > raise BaseException('Something is wrong here!') > > Never raise BaseException directly! BaseException is the very top of > the exception hierarchy, you should raise the *most* specific > exception you can, not the least specific. BaseException isn't even > just for errors, it's also for flow control exceptions like > StopIteration . Fair enough! :) I just put that line to signal that there were cases that weren't catch by the series of ``if``, but nevertheless you are right. **I would like to know more on the rationale behind this guidelines, though.** I explain: I already knew before that I should subclass exceptions, nevertheless I very seldom do, as I feel like they are just taking space on my screen doing nothing useful. All I need to do is often just print out a useful message, so I find that >>> raise StandardError('This value should be True.') does the job in a much more elegant way than: >>> class ShouldBeTrueError(StandardError): ... ... ''' ... Custom Error triggered in case a value should be True. ... ''' ... ... pass ... >>> raise ShouldBeTrueError('Doh! An error!') Ok, I already hear some of you screaming out loud "Anathema!!" ;) ...yet could somebody please clarify why should I bother subclassing? [I'm positive there is a good reason, but in all honesty I can't imagine which one...]. Thanks, /mac _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor