Normal jython try:
-- except:
won't trap java exceptions. You often need two except:
clauses, the first being except java.lang.Throwable, t:
or similar.
Some related discussions.
Note that when catching such exceptions in Vision Client scope or Designer scope, the real SQL exception is not available--it won't serialize and the JDBC classes don't exist in those scopes anyways.