This posting is sent to remind about not produce exceptions for flow control!
Why? Because the code will be hard to follow. One path for the exception and one without.
Why? Because the exception may not be good for what’s really happen.
Why? It might be re-written without knowledge of what happen in the methods with the exception control flow
Why? Because you would probably not reverse trace all instances of your exception
Why? Because you are lazy
Why? Because you know that you won’t reimplement the methods.
Why? Because you find out it’s not within the scope of your job.
Why? Because the boss will ask what you are doing instead of the described change task.
And by the way, maybe the automated tests or other mechanisms do, because they might rely on the exception flow.
And then.. then you have to ask the boss why tests failed when you worked on something else.
– Just do the the exception handling properly! Normalize the collections based on agreement of data structure (or on the lack of it) during increment. Create specialist classes for anomalies and exceptions, such as it was new programs to handle the code.