I would have expected in the Validator a .check_error() raising an error as fundamental method. Then get_errors  could be a wrapper on it with a try...except and returning the string representation of the error. If you only have a method returning strings you lose the exception type and the traceback, which are useful things.