send exceptions up the protocol
print exception before exiting; fix worker.run()