A class used as an exception should inherit from Exception.
(Should be backported to 2.6, really.)
diff --git a/Lib/pydoc.py b/Lib/pydoc.py
index 9551982..a74b97b 100755
--- a/Lib/pydoc.py
+++ b/Lib/pydoc.py
@@ -2187,7 +2187,7 @@
 def cli():
     """Command-line interface (looks at sys.argv to decide what to do)."""
     import getopt
-    class BadUsage: pass
+    class BadUsage(Exception): pass
 
     # Scripts don't get the current directory in their path by default.
     scriptdir = os.path.dirname(sys.argv[0])