Согласитесь с предложением Маркуса откатить ваше собственное исключение, но текст исключения должен прояснить, что проблема в списке аргументов, а не в значениях отдельных аргументов. Я бы предложил:
class BadCallError(ValueError):
pass
Используется, когда отсутствуют аргументы ключевых слов, которые требовались для определенного вызова, или значения аргументов индивидуально действительны, но несовместимы друг с другом. ValueError
все равно будет правильным, если определенный аргумент имеет правильный тип, но выходит за пределы диапазона.
Разве это не должно быть стандартным исключением в Python?
В целом, я бы хотел, чтобы стиль Python был немного более четким, чтобы отличать плохие входные данные для функции (ошибка вызывающего) от плохих результатов внутри функции (моя ошибка). Таким образом, может также существовать ошибка BadArgumentError, чтобы отличать значения ошибок в аргументах от ошибок значений в локальных элементах.