Code with no Error handling

number = int(input("Enter a number: ")) 
result = 10 / number 
print(f"Result: {result}")


Code with Error handling:

try:    
	number = int(input("Enter a number: "))    
	result = 10 / number    
	print(f"Result: {result}")
except ZeroDivisionError:    
	print("Error: Cannot divide by zero!")


Multiple Exception Handling:

try: 
	number = int(input("Enter a number: ")) 
	result = 10 / number 
	print(f"Result: {result}") 
except ValueError: 
	print("Error: Invalid input. Must be a number.") 
except ZeroDivisionError: 
	print("Error: Cannot divide by zero!")


else and finally:

try:
    number = int(input("Enter a number: "))  # Get input from the user
    result = 10 / number  # Perform division
except ValueError:
    print("Error: Invalid input. Please enter a number.")  # Handle invalid input
except ZeroDivisionError:
    print("Error: Cannot divide by zero!")  # Handle division by zero
else:
    print(f"Result: {result}")  # Execute only if no exceptions are raised
finally:
    print("Execution of try-except block is complete.")  # Always execute


Raising Exceptions:

try:
    number = int(input("Enter a number: "))  # Get input from the user
    if number == 0:
        # Manually raise a ValueError if the number is negative
        raise ValueError("Error: The number cannot be negative.")
    result = 10 / number  # Perform division
except ValueError as ve:
    print(ve)  # Handle invalid input or negative number error
except ZeroDivisionError:
    print("Error: Cannot divide by zero!")  # Handle division by zero
else:
    print(f"Result: {result}")  # Execute only if no exceptions are raised
finally:
    print("Execution of try-except block is complete.")  # Always execute



Assertion:

Assertion: Example 1: Validating Inputs

def calculate_area(width, height):
    assert width > 0 and height > 0, "Width and height must be positive!"
    return width * height

# Test cases
print(calculate_area(5, 3))  # Valid (returns 15)
print(calculate_area(-2, 4))  # Triggers AssertionError



Assertion: Example 2: Checking Output Validity

def compute_average(numbers):
    assert len(numbers) > 0, "List must not be empty"
    average = sum(numbers) / len(numbers)
    assert 0 <= average <= 100, "Average must be between 0 and 100"
    return average

# Test cases
print(compute_average([80, 90, 70]))  # Valid (returns 80.0)
print(compute_average([]))    # Triggers AssertionError (empty list)



Example 3: Data Validation

def register_user(username):
    assert isinstance(username, str), "Username must be a string"
    assert len(username) >= 3, "Username must be at least 3 characters long"
    assert username.isalnum(), "Username must be alphanumeric"
    return f"User {username} registered!"

# Test cases
print(register_user("Alice123"))  # Valid
print(register_user("A"))         # Triggers AssertionError (too short)






