On Fri, Jan 1, 2010 at 1:32 PM, Victor Subervi <victorsube...@gmail.com> wrote: > On Fri, Jan 1, 2010 at 12:10 PM, MRAB <pyt...@mrabarnett.plus.com> wrote: >> >> Victor Subervi wrote: >>> >>> Hi; >>> I'm trying to avoid the mortal sin of blank excepts. I intentionally >>> threw this error: >>> >>> Traceback (most recent call last): >>> File "/var/www/html/angrynates.com/cart/createAssociations2.py >>> <http://angrynates.com/cart/createAssociations2.py>", line 137, in ? >>> createAssociations2() >>> File "/var/www/html/angrynates.com/cart/createAssociations2.py >>> <http://angrynates.com/cart/createAssociations2.py>", line 108, in >>> createAssociations2 >>> cursor.execute(sql) >>> File "/usr/lib64/python2.4/site-packages/MySQLdb/cursors.py", line 163, >>> in execute >>> self.errorhandler(self, exc, value) >>> File "/usr/lib64/python2.4/site-packages/MySQLdb/connections.py", line >>> 35, in defaulterrorhandler >>> raise errorclass, errorvalue >>> ProgrammingError: (1146, "Table 'test.productsAssociations' doesn't >>> exist") >>> >>> However, "ProgrammingError" is not an error. How do I discover the real >>> error, so I can write the appropriate except statement? >>> >> What makes you think it isn't? > > Because I've tried > except ProgrammingError: > pass > before and *that* threw an error. So I didnt' try again. > beno
Just because it's not in the current namespace doesn't mean it's not an error. From PEP 249 (the db api v2) : ProgrammingError Exception raised for programming errors, e.g. table not found or already exists, syntax error in the SQL statement, wrong number of parameters specified, etc. It must be a subclass of DatabaseError. > > -- > http://mail.python.org/mailman/listinfo/python-list > > -- http://mail.python.org/mailman/listinfo/python-list