# 3. Создайте собственный класс-исключение, который должен проверять содержимое списка на наличие только чисел. Проверить
# работу исключения на реальном примере. Необходимо запрашивать у пользователя данные и заполнять список. Класс-исключение
# должен контролировать типы данных элементов списка.
# Примечание: длина списка не фиксирована. Элементы запрашиваются бесконечно, пока пользователь сам не остановит работу
# скрипта, введя, например, команду “stop”. При этом скрипт завершается, сформированный список выводится на экран.
# Подсказка: для данного задания примем, что пользователь может вводить только числа и строки. При вводе пользователем
# очередного элемента необходимо реализовать проверку типа элемента и вносить его в список, только если введено число.
# Класс-исключение должен не позволить пользователю ввести текст (не число) и отобразить соответствующее сообщение.
# При этом работа скрипта не должна завершаться.

class IntException(Exception):
    def __init__(self, msg, value):
        Exception.__init__(self, msg)
        self.value = value


nums = []
while True:
    try:
        data = input('Введите число или stop, чтобы выйти из цикла: ')
        if data == 'stop':
            break
        if data.isdigit():
            nums.append(int(data))
        else:
            raise IntException('Вы ввели не число', data)
    except IntException as err:
        print('Некорректный ввод', err.value)
print(nums)

