summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Mailman/Utils.py10
1 files changed, 7 insertions, 3 deletions
diff --git a/Mailman/Utils.py b/Mailman/Utils.py
index 522c6a0e0..c0e1fabf7 100644
--- a/Mailman/Utils.py
+++ b/Mailman/Utils.py
@@ -591,9 +591,13 @@ def IsAdministrivia(msg):
-def reraise(exc=None):
+def reraise(exc=None, val=None):
"""Use this function to re-raise an exception.
+
This implementation hides the differences between Python versions.
+ Optional exc is the exception type to raise. When exc is not None,
+ optional val is the exception value to raise.
+
"""
# Python 1.5.2
# raise
@@ -601,7 +605,7 @@ def reraise(exc=None):
if exc is None:
t, v, tb = sys.exc_info()
raise t, v, tb
- raise exc, None, sys.exc_info()[2]
+ raise exc, val, sys.exc_info()[2]
def mkdir(dir, mode=02775):
@@ -649,6 +653,6 @@ def open_ex(filename, mode='r', bufsize=-1, perms=0664):
return fp
# transform any os.errors into IOErrors
except os.error, e:
- raise IOError, e, sys.exc_info()[2]
+ reraise(IOError, e)
finally:
os.umask(ou)