How do I create user-defined warnings?

Hans Nowak zephyrfalcon!NO_SPAM! at
Wed Jun 18 04:28:33 CEST 2008

Clay Hobbs wrote:
> I already know how to make user-defined exceptions, like this one:
> 	class MyException(Exception):
> 	    pass
> But for a module I'm making, I would like to make a warning (so it just
> prints the warning to stderr and doesn't crash the program).  I have
> tried this:
> 	class MyWarning(Warning):
> 	    pass
> And it behaves like a normal error.  Please help me, I can't figure out
> what I'm doing wrong.

Are you using the warning with 'raise'?  Don't do that, use warnings.warn instead:

In [1]: import warnings

In [2]: class MyWarning(Warning): pass

In [3]: warnings.warn(MyWarning("bah humbug"))
MyWarning: bah humbug
   # -*- coding: utf-8 -*-

Hans Nowak (zephyrfalcon at gmail dot com)

More information about the Python-list mailing list