[refactoring of ObserversThrowLocalExceptions]
In the recent discussions about exceptions, problems with the
ObserverPattern have come to light.
An Observable is responsible for notifying its observers whenever
relevant state changes occur. Since exceptions are, in essence, violations of the standard control flow, they present problems in for such
radically uncoupled objects.
There are two major consequences:
methods on the Observable object should not throw exceptions unless they TidyUpBeforeThrowing