Improve exception handling.
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/3320012
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@58756 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/gclient_utils.py b/gclient_utils.py
index cf2cede..0476797 100644
--- a/gclient_utils.py
+++ b/gclient_utils.py
@@ -43,6 +43,18 @@
self.stdout = stdout
self.stderr = stderr
+ def __str__(self):
+ out = ' '.join(self.command)
+ if self.cwd:
+ out += ' in ' + self.cwd
+ if self.returncode is not None:
+ out += ' returned %d' % self.returncode
+ if self.stdout is not None:
+ out += '\nstdout: %s\n' % self.stdout
+ if self.stderr is not None:
+ out += '\nstderr: %s\n' % self.stderr
+ return out
+
def Popen(args, **kwargs):
"""Calls subprocess.Popen() with hacks to work around certain behaviors.
@@ -330,7 +342,7 @@
filter_fn(in_line)
rv = kid.wait()
if rv:
- raise Error('failed to run command: %s' % ' '.join(args))
+ raise CheckCallError(args, kwargs.get('cwd', None), rv, None)
return 0