如果您可以处理异常,那么您应该捕获它,进行必要的修改,然后返回到您正在做的事情。如果您的方法无法处理异常,则应
raise
异常以便将其传递给调用方。然后,在运行实例的最顶层调用方法中,如果异常实际上是致命的,则应打印跟踪或错误消息。
def dynamodb_create_table (table_name, ...):
table = dynamodb.create_table (...)
table.wait_until_exists()
return table
def dyndmodb_get_item (table, ...):
try:
response = table.get_item(...)
except ClientError as e:
logger.error (e.response['Error']['Message'])
raise
else:
return response['Item']
def handler (test):
dynamodb = boto3.resource('dynamodb')
try:
response = boto3.client('dynamodb').describe_table(...)
except ClientError as ce:
if ce.response['Error']['Code'] == 'ResourceNotFoundException':
logger.info("table not exists, so Create table")
ddb_create_table (table_name, partition_key, partition_key_type)
else:
logger.error("Unknown exception occurred while querying for the " + table_name + " table. Printing full error:" + str(ce.response))
raise
table = dynamodb.Table(table_name)
...
response = ddb_put_item (table,...)
item = ddb_get_item (table, ...)