Improved documentation
Added a custom exception

It will make end users catch the error type more easily