Better exceptions in python config
authorNathan Binkert <binkertn@umich.edu>
Sat, 26 Mar 2005 03:32:00 +0000 (22:32 -0500)
committerNathan Binkert <binkertn@umich.edu>
Sat, 26 Mar 2005 03:32:00 +0000 (22:32 -0500)
python/m5/config.py:
    Don't raise a new exception, just modify and re-raise the old one.

--HG--
extra : convert_revision : 47f6da3a8cb2ee18a6b400863e7ea80ab0c9a5ea

python/m5/config.py

index 1af2c5e3e971407d7e5200f06043be10ade1133a..3b5d94b152861e286a88cf677742de5464aacc5b 100644 (file)
@@ -433,8 +433,10 @@ classes. You're trying to derive from:
             try:
                 param.valid(value)
             except Exception, e:
-                raise e.__class__,  "%s\nError setting param %s.%s to %s\n" % \
+                msg = "%s\nError setting param %s.%s to %s\n" % \
                       (e, cls.__name__, attr, value)
+                e.args = (msg, )
+                raise
             cls._values[attr] = value
         elif isConfigNode(value) or isSimObjSequence(value):
             cls._values[attr] = value
@@ -510,8 +512,10 @@ classes. You're trying to derive from:
                 instance.params.append(p)
                 instance.param_names[pname] = p
             except Exception, e:
-                raise e.__class__, 'Exception while evaluating %s.%s\n%s' % \
+                msg = 'Exception while evaluating %s.%s\n%s' % \
                       (instance.path, pname, e)
+                e.args = (msg, )
+                raise
 
         return instance
 
@@ -693,8 +697,10 @@ class Node(object):
                 else:
                     param.value = self.unproxy(pval, ptype)
             except Exception, e:
-                raise e.__class__, 'Error while fixing up %s:%s\n%s' % \
+                msg = 'Error while fixing up %s:%s\n%s' % \
                       (self.path, param.name, e)
+                e.args = (msg, )
+                raise
 
         for child in self.children:
             assert(child != self)
@@ -727,8 +733,9 @@ class Node(object):
                 value = param.convert(param.value)
                 string = param.string(value)
             except Exception, e:
-                raise e.__class__, 'exception in %s:%s\n%s' % \
-                      (self.path, param.name, e)
+                msg = 'exception in %s:%s\n%s' % (self.path, param.name, e)
+                e.args = (msg, )
+                raise
 
             print '%s = %s' % (param.name, string)
 
@@ -760,9 +767,10 @@ class Node(object):
                 value = param.convert(param.value)
                 string = param.string(value)
             except Exception, e:
-                raise e.__class__, 'exception in %s:%s\n%s' % \
-                      (self.name, param.name, e)
+                msg = 'exception in %s:%s\n%s' % (self.name, param.name, e)
+                e.args = (msg, )
                 raise
+
             if isConfigNode(param.ptype) and string != "Null":
                 simobjs.append(string)
             else: