missing phpdoc for most of these exceptions.
Also how can getters be "misused" when they don't modify any state. Do these checks not slow things down uneccesarily?