Design question regarding exceptions.

James Stroud jstroud at
Tue Jul 17 23:19:18 CEST 2007

asincero wrote:
> I have a class called Users that provides a higher level of
> abstraction to an underlying "users" table in a pgsql database.  It
> has methods like "addUser()" and "deleteUser()" which, obviously, wrap
> the corresponding SQL statements.  My question is would it better to
> let any exceptions thrown by the underlying DB-API calls bubble up
> from these methods, or should I catch them inside the methods, wrap
> them inside my own custom exceptions, and throw those exceptions
> instead?
> Thanks.
> -- Arcadio

I don't think its wise to mask or otherwise waste cpu cycles catching 
and re-throwing lower level exceptions. If you anticipate problems with 
certain inputs, test for those possibilities and raise custom exceptions 
at module level. At package level, you can import a module with your 
package exceptions defined.


James Stroud
UCLA-DOE Institute for Genomics and Proteomics
Box 951570
Los Angeles, CA 90095

More information about the Python-list mailing list