I've looked through python's built in exceptions and the only thing that seems close is ValueError.
from python documentation:
exception ValueError: Raised when a built-in operation or function receives an argument that has the right type but an inappropriate value, and the situation is not described by a more precise exception such as IndexError.
Should I create a subclass of ValueError, like InvalidFormatException?
(My particular case is if a roman numeral string is improperly formatted, but there are many other applicable cases.)
EDIT: it seems like ValueError is the right choice, now the issue is whether to use ValueError directly or to subclass it.