It might be better to expose structured data of individual failures on the exception instance and defer string formatting until the validation is logged or returned to the user.