use SystemExit() exception instead of sys.exit