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]". It seems confusing, because there are no
statement error indeed. The stack trace itself is right though (ends
with my "raise TooManyChildrenError()" line).

--
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.

Reply via email to