I think you need to catch a DaoException, and check its cause. If its cause is a NestedSqlException, you'll need to interrogate that to determine what the "real" cause was. In your case, it appears a generic exception is thrown by the JDBC driver (com.borland.datastore.driver.SqlState), with a "Runtime Error" - you'll probably need to parse for "Duplicate key" to determine if that's what's being thrown.
I've had to do something similar ... it certainly isn't elegant, at least not the way I did it! Maybe someone else has a better suggestion. On Wed, 23 Feb 2005 20:23:23 +0000, Tim Christopher <[EMAIL PROTECTED]> wrote: > >> You can do that now. Maybe I'm missing something? > >> The Ibatis insert() statement throws a SQLException.. .. > > Below is the first part of stack dump that is triggers by the failed > insertion, so should I be catching a DaoException or > NestedSQLException?... Or is there anything else I can do? > > >>>>>> > StandardWrapperValve[action]: Servlet.service() for servlet action > threw exception > com.ibatis.dao.client.DaoException: Failed to update - id > [insertModule] - parameterObject [EMAIL PROTECTED] Cause: > com.ibatis.common.jdbc.exception.NestedSQLException: > --- The error occurred in com/socs/persistence/sqlmapdao/sql/Module.xml. > --- The error occurred while applying a parameter map. > --- Check the insertModule-InlineParameterMap. > --- Check the statement (update failed). > --- Cause: com.borland.datastore.driver.SqlState: Runtime Error: [line > 1, col 6] Duplicate key value for $UNIQUE$1 sort order in "MODULE". > Caused by: com.borland.datastore.driver.SqlState: Runtime Error: [line > 1, col 6] Duplicate key value for $UNIQUE$1 sort order in "MODULE". > <<<<<< > > Tim Christopher >