Day 12: Error Handling (try, except blocks)

Day 12: Error Handling (try, except blocks)

Welcome back to our Python learning journey! Today, we're going to dive into errors. Errors in Python refer to situations where the interpreter encounters a problem that prevents it from executing the code as expected.

Types of errors in Python

  1. Syntax Errors: Syntax errors occur when the Python interpreter encounters code that violates the rules of the Python language grammar. These errors are detected during the parsing stage, before the code is executed. Examples include missing colons, incorrect indentation, or misspelled keywords.

  2. Runtime Errors (Exceptions): Runtime errors, also known as exceptions, occur during the execution of the code when something unexpected happens. These errors can be caused by various factors such as invalid input, division by zero, or attempting to access an undefined variable.

  3. Logical Errors (Bugs): Logical errors occur when the code runs without raising any syntax or runtime errors, but produces incorrect results due to flawed logic or incorrect algorithm implementation. These errors can be the most challenging to identify and fix since the code executes without any error messages.

# Syntax Error: Missing colon
if number == 5
    print("number is 5")

# Runtime Error: Division by zero
result = 10 / 0

Understanding and addressing errors is an essential part of programming. Python provides mechanisms such as exception handling (try-except blocks) to gracefully handle runtime errors and prevent program crashes.

Exception handling

Exception handling in Python is a mechanism used to deal with runtime errors or exceptional situations that may occur during the execution of a program. Python provides constructs for exception handling, the primary one being the try-except block.

try-except block: The try-except block allows you to catch and handle exceptions that occur within a block of code. Here's how it works:

try:
    # Code that may raise an exception
    result = 10 / 0  # Division by zero
except ZeroDivisionError:
    # Handling the exception
    print("Error: Division by zero!")
  • The code inside the try block is executed. If an exception occurs during its execution, Python jumps to the corresponding except block.

  • If the type of exception raised matches the specified exception type in the except block, the code inside the except block is executed to handle the exception.

  • Multiple except blocks can be used to handle different types of exceptions or to provide different handling logic for each exception.

Handling Multiple Exceptions

try:
    #Code that may raise exceptions
    result = int("abc")  # ValueError: invalid literal for int()
except ValueError:
    # Handling ValueError
    print("Error: Invalid literal for int!")
except ZeroDivisionError:
    # Handling ZeroDivisionError
    print("Error: Division by zero!")

Conclusion

In conclusion, Day 12 covered the topic of error handling in Python, focusing on the try-except blocks. Exception handling is a crucial aspect of programming, allowing you to gracefully manage unexpected errors and prevent program crashes. By using try-except blocks effectively, you can anticipate and handle exceptions, making your code more robust and reliable. Understanding error handling techniques in Python is essential for writing high-quality and resilient programs.