diff options
author | Steven Knight <knight@baldmt.com> | 2004-09-15 01:19:55 (GMT) |
---|---|---|
committer | Steven Knight <knight@baldmt.com> | 2004-09-15 01:19:55 (GMT) |
commit | 7fef06f597626b9ee3faa0aa716819258e583812 (patch) | |
tree | c43c6b210684e12eb7c33ddc82ef5325be21feb4 /src/engine/SCons/Action.py | |
parent | decb5aded9c3103e52a31cd75fed2391e7bf29c5 (diff) | |
download | SCons-7fef06f597626b9ee3faa0aa716819258e583812.zip SCons-7fef06f597626b9ee3faa0aa716819258e583812.tar.gz SCons-7fef06f597626b9ee3faa0aa716819258e583812.tar.bz2 |
Handle exceptions in FunctionActions. (Steve Christensen)
Diffstat (limited to 'src/engine/SCons/Action.py')
-rw-r--r-- | src/engine/SCons/Action.py | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/engine/SCons/Action.py b/src/engine/SCons/Action.py index 63d8c98..e110d60 100644 --- a/src/engine/SCons/Action.py +++ b/src/engine/SCons/Action.py @@ -497,7 +497,12 @@ class FunctionAction(ActionBase): def execute(self, target, source, env): rsources = map(rfile, source) - return self.execfunction(target=target, source=rsources, env=env) + try: + result = self.execfunction(target=target, source=rsources, env=env) + except EnvironmentError, e: + # If an IOError/OSError happens, raise a BuildError. + raise SCons.Errors.BuildError(node=target, errstr=e.strerror) + return result def get_contents(self, target, source, env, dict=None): """Return the signature contents of this callable action. |