Right, it would require throwing specialized exceptions.
That is fully BC though, so if anybody wants to go on and give it a shot: do it!