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.
As a simple example, what happens if you attempt to divide a number by 0?
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:
Second, a code that simulates a scenario that throws an error:
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:
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.
