If this is in the wrong forum, please point me to the right one.

I'm considering using Spring's validation framework at my service layer, instead of throwing exceptions. I like the idea because it allows multiple exception cases to be reported at once, and because of the Errors class's support for resolvable error codes.

e.g. my methods are going to be

Code:
doJob(Object argument, Errors errors)
instead of

Code:
doJob(Object arguments) throws JobException
But I have two questions:

- Has this been proven to work in real life? The validation class javadoc keeps referring to web objects, like "usually your form controller does this for you", so has the validation been proven for usability without web dependencies? Does it scale, such that other machine clients (as opposed to web users) can run the methods efficiently?

- How does Spring suggest I create an Errors instance, when calling these methods? Is there anything cleaner than:

Code:
Greeting greeting = new Greeting("hello");
DataBinder dataBinder = new DataBinder(greeting);
Errors errors = dataBinder.getBindingResult();
doJob(greeting, errors);
And is it really a good idea to make the consumer do that work? Does it tend to work better if the service method creates its own Errors object (and then, probably, wraps it in an Exception and throws it)?

If anyone has already gone down this road, I would very much appreciate the wisdom of experience.

Thanks,
- Travis