“Define Errors out of Existence” is a design principle stating that we should avoid interfaces that throw errors, when we can also make a sensible implementation without those errors. For instance, deleting a value from an dictionary using a key that does not exist might intuitively call for throwing some kind of `KeyNotFound` -exception. However, looking at the code semantically, it still make sense to just do nothing in this case. A deletion of a key in a dictionary is an operation which leaves the dictionary without this specific key-value-pair. So if the desired state is already reached, we don’t need to do anything and the program will – most of the time – still be in a valid state. # References John Ousterhout - A Philosophy of Software Design – Chapter 10