Exception, Errors and Failures, Oh My!
This gets thrown when the underlying url request has recieved an abnormal response code, or the program has issued a request that can not be filled.
This gets thrown when the API gets a valid response, but has an error that should be passed back to the program.
This gets thrown if the bindings are asked to issue a request, but the sunlight.config.API_KEY variable is None.
sunlight.errors.SunlightException is the base exception, all other sunlight exceptions (such as sunlight.errors.NoAPIKeyException) all inherit from this. This makes it easy to catch all sunlight errors if you really really need to (not that you should)