Exceptions - adapting @chrispitt's PR

Adapted @chrispitt's PR (#3) to match naming and OOP style of lib  - thanks Chris!

:thumbsup: