Added -u / --url option.
catch all exceptions in run()