in what circumstances have people used this exception?
My specs say that this exception MUST be thrown whenever the specified record does not exist or is marked as deleted.
why would throw this for a delete for instance? And a readRecord too for that matter?
I am not sure what are you meaning... If you don't throw it, you are ignoring an explicit requirement, and you'll fail. If you don't like the design you can always explain it in the choices.txt, but remember, this file will never be read if you rise an automatic failure.