WIP2

Added throw_exception. Checking for exception subclasses doesn't work due to lack of language support. The syntax for expecting an exception type other than std::exception is ugly.