使用Notification代替Assertion和Exception的方法-- http://martinfowler.com/articles/replaceThrowWithNotification.html