Hi Oleg,
Which particular aspect of this approach are you concerned with?
The bit where I'm returning (not throwing) an exception?
If so, that could be changed so it throws it instead /but/ that would result in all of the calling-code getting much larger (as it would have to catch the exceptions instead of just have them returned).
I took the view that minimising the number of exceptions that were actually thrown (and immediately caught & suppressed) would be a good thing (but I also ensured that the "tryTo..." methods were private, so as not to expose a non-throwing method outside of this class).