Проблема с кастомными ошибками в Python
Пробовал реализовать обработку кастомных ошибок в игре "крестики-нолики" через консоль, написал для них классы и функции, но ошибки не проверяются. Я начинающий программист, помогите, пожалуйста, кто знает, что нужно сделать. Прикрепляю кусок кода. На вход функции подается значение введенное пользователем, X или O в зависимости от того, чей сейчас ход, и список из чисел от 1 до 9.
class ValueErrror(Exception):
def __str__(self) -> str:
return "Введите число в диапазоне (1,9)"
class ValueNotInRangeError(Exception):
def __str__(self) -> str:
return "Число должно быть в диапазоне (1,9)"
# проверяем значение пользователя на соответствие условиям игры
def check_value_int(user_input: str) -> None:
try:
answer = int(user_input)
except ValueError:
raise ValueErrror
# проверяем значение пользователя на соответствие условиям игры
def check_value_range(answer: int) -> None:
try:
answer >= 1 and answer <= 9
except IndexError:
raise ValueNotInRangeError
# принимаем значение пользователя и проверяем его на соответствие условиям игры
def check_entry(user_input: str, token: str, board: List[Union[str, int]]) -> Union[str, List[Union[str, int]]]:
while True:
try:
check_value_int(user_input)
except ValueErrror as i:
return i
else:
answer = int(user_input)
try:
check_value_range(answer)
except ValueNotInRangeError as r:
return r
else:
if str(board[answer-1]) not in "XO":
board[answer-1] = token
break
else:
return "Эта клетка уже занята"
return board