Added custom exceptions [WIP]

Inspired at http://www.doctrine-project.org
If I recall correctly, once you was changing to strict comparison. I would do it here to.