Anthony Costanza2,123 Points
What am I doing wrong here?
""" This is importing a function named `tweet` from a file that we unfortunately don't have access to change. You use it like so: >>> tweet("Hello this is my tweet") If the function cannot connect to Twitter, the function will raise a `CommunicationError` If the message is too long, the function will raise a `MessageTooLongError` """ from twitter import ( tweet, MessageTooLongError, CommunicationError, ) message = input("What would you like to tweet? ") # Your code here tweet(message) try: print(message) except CommunicationError: print("Communication Error") except MessageTooLongError: print("Your message is too long")
Brandon WhiteTreehouse Moderator
Hi Anthony Costanza,
Your issue with the second challenge has to do with your try...except block. There is no CommunicationError because you’re trying to invoke the print function and not the tweet function.
Well, technically your tweet function isn’t placed within a try...except block, so when there is a CommunicationError before the try...except block where you attempt the print(message) function, there is no exception to handle it. So that’s technically why you’re getting the assertion error.
But the bigger issue is that in your try block you should be calling tweet(message) not print(message). So move your tweet(message) into your try block, and then you can delete the print(message) statement altogether. Do that and you’ll be on your way to passing the second challenge (although you’ll still need to change the message you’re printing to the console to the one the challenge asks you to use).
With the third challenge, in addition to changing the print message to the correct message, you'll need to include the message returned from the exception. You'll do that using the following syntax
except MessageTooLongError as err:, with err simply being a variable to hold the exception. You'll then plug it into the print message.