Make exception handling conform to Pythonic standards. (Kevin Quick)
authorstevenknight <stevenknight@fdb21ef1-2011-0410-befe-b5e4ea1792b1>
Tue, 13 Jul 2004 00:07:19 +0000 (00:07 +0000)
committerstevenknight <stevenknight@fdb21ef1-2011-0410-befe-b5e4ea1792b1>
Tue, 13 Jul 2004 00:07:19 +0000 (00:07 +0000)
git-svn-id: http://scons.tigris.org/svn/scons/trunk@1002 fdb21ef1-2011-0410-befe-b5e4ea1792b1

src/engine/SCons/Errors.py
src/engine/SCons/ErrorsTests.py
src/engine/SCons/Script/__init__.py

index 0a57614726254a8205bd080b2362e46fbab4100b..283e68193ec80140bea087650b277474f0377621 100644 (file)
@@ -36,25 +36,22 @@ class BuildError(Exception):
     def __init__(self, node=None, errstr="Unknown error", *args):
         self.node = node
         self.errstr = errstr
-        self.args = args
+        apply(Exception.__init__, (self,) + args)
 
 class InternalError(Exception):
-    def __init__(self, args=None):
-        self.args = args
+    pass
 
 class UserError(Exception):
-    def __init__(self, args=None):
-        self.args = args
+    pass
 
 class StopError(Exception):
-    def __init__(self, args=None):
-        self.args = args
+    pass
 
 class ExplicitExit(Exception):
     def __init__(self, node=None, status=None, *args):
         self.node = node
         self.status = status
-        self.args = args
+        apply(Exception.__init__, (self,) + args)
 
 class ConfigureDryRunError(UserError):
     """Raised when a file needs to be updated during a Configure process,
@@ -67,4 +64,4 @@ class TaskmasterException(Exception):
         self.type = type
         self.value = value
         self.traceback = traceback
-        self.args = args
+        apply(Exception.__init__, (self,) + args)
index 4771a3f677649b14741a2c169cfcc3be1c9f421e..bb476108b3402b0079d47599c1d64becbbc74922 100644 (file)
@@ -42,14 +42,14 @@ class ErrorsTestCase(unittest.TestCase):
         try:
             raise SCons.Errors.InternalError, "test internal error"
         except SCons.Errors.InternalError, e:
-            assert e.args == "test internal error"
+            assert e.args == ("test internal error",)
 
     def test_UserError(self):
        """Test the UserError exception."""
         try:
             raise SCons.Errors.UserError, "test user error"
         except SCons.Errors.UserError, e:
-            assert e.args == "test user error"
+            assert e.args == ("test user error",)
 
     def test_ExplicitExit(self):
        """Test the ExplicitExit exception."""
@@ -63,7 +63,7 @@ class ErrorsTestCase(unittest.TestCase):
         try:
             raise SCons.Errors.ConfigureDryRunError, "FileName"
         except SCons.Errors.UserError, e:
-            assert e.args == "Cannot update configure test (FileName) within a dry-run."
+            assert e.args == ("Cannot update configure test (FileName) within a dry-run.",)
 
     def test_TaskmasterException(self):
         """Test the TaskmasterException."""
index 853a94458b37ca3a10d0044d269839439b46740b..2dbb9617cd9aa8b87e95a39d9ba4327805b7a761 100644 (file)
@@ -332,7 +332,7 @@ def _scons_internal_warning(e):
     *current call stack* rather than sys.exc_info() to get our stack trace.
     This is used by the warnings framework to print warnings."""
     filename, lineno, routine, dummy = find_deepest_user_frame(traceback.extract_stack())
-    sys.stderr.write("\nscons: warning: %s\n" % e)
+    sys.stderr.write("\nscons: warning: %s\n" % e[0])
     sys.stderr.write('File "%s", line %d, in %s\n' % (filename, lineno, routine))
 
 def _scons_internal_error():