# Exception Handling
try:
# Code that may raise an exception
except ExceptionType as e:
# Code to handle the exception
Exception handling in Python allows you to gracefully handle errors and exceptions that might occur during the execution of your code. It prevents the program from crashing and provides a mechanism to handle exceptional situations appropriately. Python provides the `try`, `except`, `else`, and `finally` blocks to handle exceptions. Let's go through some examples to illustrate exception handling in Python.
1. Handling a Specific Exception:
```python
try:
dividend = int(input("Enter the dividend: "))
divisor = int(input("Enter the divisor: "))
result = dividend / divisor
print(f"The result of the division is: {result}")
except ZeroDivisionError:
print("Error: Cannot divide by zero.")
except ValueError:
print("Error: Please enter valid integer values.")
```
In this example, we try to perform division, but if the user enters a non-integer or zero divisor, the corresponding exception will be caught, and an appropriate error message will be displayed.
2. Handling Multiple Exceptions:
```python
try:
file_name = input("Enter the file name: ")
with open(file_name, "r") as file:
content = file.read()
print(f"File content: {content}")
except FileNotFoundError:
print(f"Error: File '{file_name}' not found.")
except PermissionError:
print(f"Error: You don't have permission to access the file.")
except Exception as e:
print(f"An error occurred: {str(e)}")
```
In this example, we are trying to read the content of a file, but various exceptions like `FileNotFoundError` (when the file does not exist) and `PermissionError` (when the file can't be accessed due to permission issues) might occur.
3. Using the `else` block:
```python
try:
num1 = int(input("Enter a number: "))
num2 = int(input("Enter another number: "))
result = num1 / num2
except ValueError:
print("Error: Please enter valid integer values.")
except ZeroDivisionError:
print("Error: Cannot divide by zero.")
else:
print(f"The result of division is: {result}")
```
The `else` block is executed only if there are no exceptions. In this example, if both numbers are valid and the division is successful, the `else` block will display the result.
4. Using the `finally` block:
```python
try:
# Perform some operations that might raise exceptions
print("Performing some operations...")
except Exception as e:
print(f"An error occurred: {str(e)}")
finally:
print("This block will always be executed, regardless of exceptions.")
```
The `finally` block is used for cleanup tasks that should always be executed, whether an exception occurs or not. It is commonly used to release resources like closing a file or network connection.
Remember that it's essential to handle specific exceptions rather than using a broad `except` block that catches all exceptions (e.g., `except:`). Catching specific exceptions allows you to handle them differently and provide more informative error messages to users.
Comments
Post a Comment