On Jun 21, 2011, at 7:04 PM, Anton wrote: > On 22 июн, 00:47, Michael Bayer <mike...@zzzcomputing.com> wrote: >> I added StatementError after having too often a custom type or other kind of >> error happen deep inside the preparation for execution with no indication >> what statement or parameter caused the issue. It's an enhancement, and >> the original exception is associated with the new one as "orig". In Python >> 3 this works even more nicely as you can see we're doing "raise x from e", >> and you get both stacktraces. What about the StatementError is not >> working for you ? I'd advise against doing things like business-level >> validations in types. > > In my case it's more like sanity check than business-logic. And the > reason to do this checks in type is that I want to delay it as much as > possible. It would be acceptable to have another exception instead of > custom, but the problem is that it is not easy to understand, what's > went wrong looking at the stack trace. It doesn't show at the last > line its original exception, only "StatementError: 'query > text' [params list]".
well Python 3 fixes this problem entirely by allowing exception chains. What text would you prefer in StatementError ? > -- > Anton > >> >> On Jun 21, 2011, at 6:39 PM, an...@angri.ru wrote: >> >> >> >> >> >> >> >>> Hi, >> >>> I'm porting sqlamp [1] to SQLAlchemy 0.7 and have some difficulties >>> with it. One of them is raising an exception (non-DBAPI) from >>> process_bind_param() method of classes derived from TypeDecorator. In >>> 0.6 [2] method _handle_dbapi_exception() of engine.base.Connectable >>> doesn't munch the exception if it is not an instance of >>> self.dialect.dbapi.Error. 0.7 in turn does [3]. And it reraises the >>> exception of different type - instead of the original one it uses >>> DBAPIError.instance(), which in my case returns StatementError. How >>> can I fix it on my side? >> >>> Thanks. >> >>> -- >>> Anton >> >>> [1]http://sqlamp.angri.ru >>> [2]http://www.sqlalchemy.org/trac/browser/lib/sqlalchemy/engine/base.py?... >>> [3]http://www.sqlalchemy.org/trac/browser/lib/sqlalchemy/engine/base.py?... >> >>> -- >>> You received this message because you are subscribed to the Google Groups >>> "sqlalchemy" group. >>> To post to this group, send email to sqlalchemy@googlegroups.com. >>> To unsubscribe from this group, send email to >>> sqlalchemy+unsubscr...@googlegroups.com. >>> For more options, visit this group >>> athttp://groups.google.com/group/sqlalchemy?hl=en. > > -- > You received this message because you are subscribed to the Google Groups > "sqlalchemy" group. > To post to this group, send email to sqlalchemy@googlegroups.com. > To unsubscribe from this group, send email to > sqlalchemy+unsubscr...@googlegroups.com. > For more options, visit this group at > http://groups.google.com/group/sqlalchemy?hl=en. > -- You received this message because you are subscribed to the Google Groups "sqlalchemy" group. To post to this group, send email to sqlalchemy@googlegroups.com. To unsubscribe from this group, send email to sqlalchemy+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/sqlalchemy?hl=en.