================================================================================
  Question 20: Custom Exception: Invalid Age
================================================================================

FULL QUESTION:
Task:
1. Write a class InvalidAgeException that inherits from Exception.
2. Create a function that accepts user input for age and throws the exception
   if the age is not between 18 and 60.
3. Handle the exception and display appropriate messages.

SHORT QUESTION:
Custom exception handling demonstrating user-defined InvalidAgeException for age verification between 18 and 60.

================================================================================
README & SETUP INSTRUCTIONS:
================================================================================
# Question 20: Custom Exception: Invalid Age

- Prerequisites: Python 3.x (Standard library only).
- Setup: None.
- How to Run: python question_20.py
- Expected Behavior: Validates age against required boundaries (18 to 60) and catches InvalidAgeException.

================================================================================
SOURCE CODE FILES:
================================================================================

1. question_20.py
--------------------------------------------------------------------------------
class InvalidAgeException(Exception):
    pass

def read_age():
    age = int(input("Enter the age to check: "))
    if age < 18 or age > 60:
        raise InvalidAgeException("Age must be between 18 and 60.")
    return f"Valid Age: {age}"

try:
    result = read_age()
    print(result)
except InvalidAgeException as e:
    print(f"Error Caught: {e}")
except ValueError:
    print("Error Caught: Please enter a valid numerical whole number.")
--------------------------------------------------------------------------------
