Python:为什么要打印回溯?
我有一个功能。该函数将在更多线程中启动。我试图打印自己的错误消息。但我做什么并不重要,我还是会打印回溯。我的职能:Python:为什么要打印回溯?,python,Python,我有一个功能。该函数将在更多线程中启动。我试图打印自己的错误消息。但我做什么并不重要,我还是会打印回溯。我的职能: def getSuggestengineResultForThree(suggestengine, seed, dynamoDBLocation): results[seed][suggestengine] = getsuggestsforsearchengine(seed, suggestengine) for keyword_result in results
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")
但我得到的每个线程的输出如下:
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
有人能帮我找到自己的指纹而不是回溯吗?:) 通过puteExceedexception提供的
可能实际上不是错误。尝试:
except botocore.exceptions.ClientError as pe:
相反
如果这不起作用,请找出错误发生在哪一行,并将“except
语句”放在那里。这个答案对于您的问题来说有点晚了,但在这里是为了防止有人搜索这个答案
boto3抛出的异常是一个botocore.exceptions.ClientError
,正如Neil所回答的那样。但是,您应该检查“ProvisionedThroughoutExceedeDexception”的响应错误代码,因为ClientError
可能是另一个问题
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次),这与您的异常不同:
调用PutItem操作(达到最大重试次数:9)时发生错误(ProvisioniedThroughPutExceedeDexException):已超过表的配置的已配置吞吐量级别。考虑使用可更新的API增加配置级别。