Welcome, aspiring programmer! Today, we're learning about try
and except
blocks, which are critical for handling potential errors in Python programming. Through live code, we'll see how these blocks contribute to the design of resilient code, an essential component of sustainable programming!
Errors are an inevitable part of any program. However, using try
and "except" blocks, we can manage these errors, ensuring that our programs run smoothly.
In life, things don’t always go as planned. Similarly, unexpected situations may arise in programming - such as a missing file that your code needs to read or a user input mismatch. Anticipating and handling these scenarios is known as error handling. An analogy might be the way a barista handles running out of milk - by informing you and suggesting alternatives.
try
and except
blocks are equivalent to saying, "Let's TRY this, but if it fails, here's the backup plan". Risky code is placed in the try
block, and if an error occurs, the except
block handles it.
Python1try: 2 # Risky code 3except ExceptionType: 4 # Backup plan
As a simple example, what happens if you attempt to divide a number by 0?
Python1try: 2 print(10 / 0) 3except ZeroDivisionError: 4 print("Oops, you can't divide by zero!")
Here, Python says, "Okay, I'll TRY to carry out the division in the try
block. Uh oh, that's a ZeroDivisionError. Alright then, all I have to do is execute the except block."
Let's write two Python scripts that demonstrate try
and except
blocks with unique messages for successful and unsuccessful execution.
First, a code block running without error:
Python1try: 2 print("Everything is fine!") 3except: 4 print("There's no error here, so we won't see this.")
Second, a code that simulates a scenario that throws an error:
Python1try: 2 result = "3" + 0 3except: 4 print("Oops! You can't add up a string and a number.")
Python has different exceptions for a variety of error types like ValueError
, TypeError
, FileNotFoundError
, and ZeroDivisionError
. Here's an example showing how to handle multiple exceptions:
Python1try: 2 num = input("Enter a number:") 3 print("The inverse is: ", 1 / int(num)) 4except ValueError: 5 print("That's not a number!") 6except ZeroDivisionError: 7 print("Zero doesn't have an inverse!") 8except: 9 print("Something unexpected occurred!")
In the above script, if the user enters a non-numeric input, a ValueError
is raised. If they input zero, a ZeroDivisionError
is raised. The script gracefully handles these exceptions. Exceptions are handled one by one, from the top to the bottom.
Well done! You've learned how to implement and use try
and except
blocks in Python to manage various exceptions. This is a crucial stepping-stone towards writing resilient Python code.
Up next are a series of practice exercises to help refine and reinforce this concept. Remember, understanding errors and mastering exception handling comes with practice, so let's get cracking!