首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python:为什么要打印回溯?

Python:为什么要打印回溯?
EN

Stack Overflow用户
提问于 2016-07-19 15:28:46
回答 2查看 228关注 0票数 1

我有个功能。函数可以在更多的线程中启动。我试着打印自己的错误信息。但我所做的并不重要--我还是会把追踪印出来的。我的职能:

代码语言:javascript
复制
def getSuggestengineResultForThree(suggestengine, seed, dynamoDBLocation):
    results[seed][suggestengine] = getsuggestsforsearchengine(seed, suggestengine)

    for keyword_result in results[seed][suggestengine]:
        o = 0
        while True:
            try:
                allKeywords.put_item(
                    Item={
                        'keyword': keyword_result
                    }
                )
                break
            except ProvisionedThroughputExceededException as pe:
                if (o > 9):
                    addtoerrortable(keyword_result)
                    print('ProvisionedThroughputExceededException 10 times in getSuggestengineResultForThree for allKeywords')
                    break
                sleep(1)
                o = o + 1
                print("ProvisionedThroughputExceededException in getSugestengineResult")

但是每一个线程我都会得到这样的输出:

代码语言:javascript
复制
Exception in thread Thread-562:
Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/threading.py", line 914, in _bootstrap_inner
self.run()
  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/threading.py", line 862, in run
self._target(*self._args, **self._kwargs)
  File "/Users/iTom/ownCloud/Documents/Workspace/PyCharm/Keywords/TesterWithDB.py", line 362, in getSuggestengineResultForThree
'keyword': keyword_result
  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/boto3/resources/factory.py", line 518, in do_action
response = action(self, *args, **kwargs)
  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/boto3/resources/action.py", line 83, in __call__
response = getattr(parent.meta.client, operation_name)(**params)
  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/botocore/client.py", line 252, in _api_call
return self._make_api_call(operation_name, kwargs)
  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/botocore/client.py", line 542, in _make_api_call
raise ClientError(parsed_response, operation_name)
botocore.exceptions.ClientError: An error occurred (ProvisionedThroughputExceededException) when calling the PutItem operation: The level of configured provisioned throughput for the table was exceeded. Consider increasing your provisioning level with the UpdateTable API

有人能帮我得到我自己的指纹而不是回溯吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-07-19 16:20:36

可能ProvisionedThroughputExceededException实际上不是错误。尝试:

代码语言:javascript
复制
except botocore.exceptions.ClientError as pe:

而不是。

如果这不起作用,就找出错误发生在哪一行,并将except语句放在那里。

票数 0
EN

Stack Overflow用户

发布于 2016-12-21 19:39:28

这个答案对你的问题有点迟,但这里是为了防止有人在寻找这个答案。

尼尔回答说,boto3抛出的例外是一个botocore.exceptions.ClientError。但是,您应该检查“ProvisionedThroughputExceededException”的响应错误代码,因为ClientError可能是另一个问题。

代码语言:javascript
复制
from botocore.exceptions import ClientError

except ClientError as e:
  if e.response['Error']['Code'] != 'ProvisionedThroughputExceededException':
    raise
  # do something else with 'e'

我正在使用Python2.7,这可能会或不会产生影响。我收到的异常表明,boto3已经在进行重试(最多9次),这与您的异常不同:

调用ProvisionedThroughputExceededException操作时发生错误(达到最大值重试: 9):超出了表的配置配置吞吐量级别。考虑使用UpdateTable API来提高您的配置级别。

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

https://stackoverflow.com/questions/38462781

复制
相关文章

相似问题

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