首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么这个` Why‘语句没有捕获这个’`CannotSendRequest`‘错误?python

为什么这个` Why‘语句没有捕获这个’`CannotSendRequest`‘错误?python
EN

Stack Overflow用户
提问于 2014-08-08 01:23:28
回答 1查看 488关注 0票数 3
代码语言:javascript
复制
try:
    serial_tx = bcl.sendrawtransaction(tx)
except:
    raise
    ''other stuff''

括号中的tx是即将被广播到网络的原始事务。结果是-

代码语言:javascript
复制
Internal Server Error: /blockscript/0d82f8c8f85ed2b8226dd98ad967c81b00000000000074cfc81b5e3cfdef19975408ef2c2d9976160c69dd2057505d5a/
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/django/core/handlers/base.py", line 114, in get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/media/derrend/data/Development/projectone/pro1/views.py", line 1012, in blockscript
    process_rec(tx, L_dct=L_dct, W_dct=W_dct)
  File "/media/derrend/data/Development/projectone/pro1/views.py", line 494, in process_rec
    serial_tx = bcl.sendrawtransaction(tx)
  File "/usr/local/lib/python2.7/dist-packages/python_bitcoinlib-0.2_SNAPSHOT-py2.7.egg/bitcoin/rpc.py", line 403, in sendrawtransaction
    r = self._call('sendrawtransaction', hextx)
  File "/usr/local/lib/python2.7/dist-packages/python_bitcoinlib-0.2_SNAPSHOT-py2.7.egg/bitcoin/rpc.py", line 163, in _call
    'Content-type': 'application/json'})
  File "/usr/lib/python2.7/httplib.py", line 973, in request
    self._send_request(method, url, body, headers)
  File "/usr/lib/python2.7/httplib.py", line 1001, in _send_request
    self.putrequest(method, url, **skips)
  File "/usr/lib/python2.7/httplib.py", line 871, in putrequest
    raise CannotSendRequest()
CannotSendRequest

(预先谢谢:)

编辑:

我最初为了论坛而缩短了错误,但现在我已经用完整的错误输出更新了它。再次感谢:)

EDIT2:

我刚刚看到,我在上述主要职位中增加了try声明中的一项内容。通常情况下,报告的错误是“提高不可能是零”或类似的东西,但这不是我这次看到的。我会在我的案例中提到,这在某种程度上是重新发明的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-08-08 02:25:35

raise自己重新引发一个捕获的异常,保留其堆栈跟踪。如果不希望传播异常,请删除raise

您在问题中所描述的只有在没有异常情况下使用裸raise时才会发生,而且只有在Python2中才会发生:

通常情况下,报告的错误是“提高不能是零”或类似于此的内容。

确切的错误是:

TypeError:异常必须是旧样式的类或派生自BaseException,而不是NoneTyp e。

。在Python 3中,它更具体:

RuntimeError:没有有效的重命名异常

…但是,这也不应适用于except块。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25194745

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档