More error handling changes (hopefully final)

The end result is that all errors should throw an exception
(RuntimeException, typically) that gets passed up to a handler and
prints itself.