code: def catch_boto_400(self, message, heading=None, document=None, **info):
          
          try:
              yield
          except ClientError as error:
              if str(error.response["ResponseMetadata"]["HTTPStatusCode"]).startswith("4"):
                  if heading or document:
                      print("=" * 80)
                      if heading:
                          print(heading)
                      print(document)
                      print("=" * 80)
                  error_message = error.response["Error"]["Message"]
                  raise BadAmazon(message, error_message=error_message, error_code=error.response["ResponseMetadata"]["HTTPStatusCode"], **info)
              else:
                  raise
docs: Turn a BotoServerError 400 into a BadAmazon