Using custom exception.
Updated version.
Forgot to expose the rules exception.
Updated version.