Propagate Throwables to return proper exit code

An outer catch block handles these and calls System.exit(1).