What about rather than throwing an exception the code is wrapped in a try/catch block and if the exception/s are captured then you return either an empty array or an array with error messages in it?
What about rather than throwing an exception the code is wrapped in a try/catch block and if the exception/s are captured then you return either an empty array or an array with error messages in it?