[Twisted-Python] Appropriate exception for AMP types receiving garbage?

Glyph glyph at twistedmatrix.com
Thu Dec 27 00:02:24 MST 2012


On Dec 26, 2012, at 1:43 PM, Laurens Van Houtven <_ at lvh.cc> wrote:

> I'm writing a custom AMP type. I noticed that when writing the unit test for garbage input, I didn't really know what exception to check for.
> 
> I couldn't find any place where this was formally defined, so I checked for implementation behavior. Boolean explicitly raises TypeError. Integer raises ValueError, but that appears to only be an implementation detail of int.
> 
> It could also be that it doesn't matter at all, but it does seem a little strange that Integer and Boolean raise different exceptions when fed garbage...

Hey Laurens,

This is basically a feature request :).  There's no particular defined error type for argument parse errors in AMP.  It's not a bad feature though.  The exception also doesn't go anywhere useful - the only contract is basically that it'll bubble up and break the connection if you get some bad data.  A more sophisticated and trappable / trackable way to propagate this sort of error would be useful.

(I would personally consider it a compatible change if the behavior of the error cases changed here, on the grounds that anything that uncontrollably logs a traceback in response to network input is a gross spec violation of a sort.  Maybe we should add an explicit exemption for that case.)

-glyph
-------------- next part --------------
An HTML attachment was scrubbed...
URL: </pipermail/twisted-python/attachments/20121226/c3328b8e/attachment.html>


More information about the Twisted-Python mailing list