I would actually go the route getting those developers to follow good practice. As a whole, the field would be better off if developers like that were mentored rather than something like this.
So, I would recommend using either of the techniques you put forth originally (using the
property or a specialized exception).
Granted, if you're working in legacy code, it isn't always possible, but it is the ideal.