Improved error handling

Allow exceptions to flow up to main() so we can decide there
if we should exit with success or failure.