[WIP] [2.0] Clean up Exceptions

This PR is a work in progress. It addresses some problems we've got with Exceptions. Currently it contains two fixes:

- Resolves the misspelling of 'scheme', reimplementing the fix proposed in #1187.
- Attempts to provide a fix of #1294.

This second part is of particular interest. I want to know what @sigmavirus24 thinks of this possible fix.