mirror of
https://gerrit.googlesource.com/git-repo
synced 2024-12-21 07:16:21 +00:00
Simplify error handling in subcommand execution
Instead of using a nested try (which repo is plagued with), use a single try when executing the appropriate subcommand. Change-Id: I32dbfc010c740c0cc42ef8fb6a83dfe87f87e54a
This commit is contained in:
parent
98ffba1401
commit
7ba25bedf9
25
main.py
25
main.py
@ -131,10 +131,21 @@ class _Repo(object):
|
|||||||
if use_pager:
|
if use_pager:
|
||||||
RunPager(config)
|
RunPager(config)
|
||||||
|
|
||||||
try:
|
|
||||||
start = time.time()
|
start = time.time()
|
||||||
try:
|
try:
|
||||||
result = cmd.Execute(copts, cargs)
|
result = cmd.Execute(copts, cargs)
|
||||||
|
except DownloadError as e:
|
||||||
|
print('error: %s' % str(e), file=sys.stderr)
|
||||||
|
result = 1
|
||||||
|
except ManifestInvalidRevisionError as e:
|
||||||
|
print('error: %s' % str(e), file=sys.stderr)
|
||||||
|
result = 1
|
||||||
|
except NoSuchProjectError as e:
|
||||||
|
if e.name:
|
||||||
|
print('error: project %s not found' % e.name, file=sys.stderr)
|
||||||
|
else:
|
||||||
|
print('error: no project in current directory', file=sys.stderr)
|
||||||
|
result = 1
|
||||||
finally:
|
finally:
|
||||||
elapsed = time.time() - start
|
elapsed = time.time() - start
|
||||||
hours, remainder = divmod(elapsed, 3600)
|
hours, remainder = divmod(elapsed, 3600)
|
||||||
@ -145,18 +156,6 @@ class _Repo(object):
|
|||||||
else:
|
else:
|
||||||
print('real\t%dh%dm%.3fs' % (hours, minutes, seconds),
|
print('real\t%dh%dm%.3fs' % (hours, minutes, seconds),
|
||||||
file=sys.stderr)
|
file=sys.stderr)
|
||||||
except DownloadError as e:
|
|
||||||
print('error: %s' % str(e), file=sys.stderr)
|
|
||||||
return 1
|
|
||||||
except ManifestInvalidRevisionError as e:
|
|
||||||
print('error: %s' % str(e), file=sys.stderr)
|
|
||||||
return 1
|
|
||||||
except NoSuchProjectError as e:
|
|
||||||
if e.name:
|
|
||||||
print('error: project %s not found' % e.name, file=sys.stderr)
|
|
||||||
else:
|
|
||||||
print('error: no project in current directory', file=sys.stderr)
|
|
||||||
return 1
|
|
||||||
|
|
||||||
return result
|
return result
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user