I have been assigned a project to develop a set of classes that act as an interface to a storage system. A requirement is that the class support a get method with the follo
The problem with exceptions is they are meant to signal a "fail fast" scenario (i.e. if not processed, an exception will stop an application) due to an exceptional and abnormal behavior.
I do not think that "the scenario where the key exists but the object has not been modified" is an exceptional one, certainly not an abnormal one.
Hence I would not use exception, but rather I would document the action the caller need to do in order to correctly interpret the result (property or special object).