The outer ``try`` block is for properly returning the connection to the pool. There is also already a ``try``/``except`` for catching decoding errors in ``.read`` although that doesn't make it better...

I considered setting the url to ``None`` because probably the caller will have access to the url they request for. The exception's constructor is just wrong then though.