Exceptions

Never exit, always throw exceptions, so they can be caught and dealt with