SF patch 1631942 by Collin Winter:
(a) "except E, V" -> "except E as V"
(b) V is now limited to a simple name (local variable)
(c) V is now deleted at the end of the except block
diff --git a/Tools/unicode/gencodec.py b/Tools/unicode/gencodec.py
index dabcd72..47d81eb 100644
--- a/Tools/unicode/gencodec.py
+++ b/Tools/unicode/gencodec.py
@@ -130,7 +130,7 @@
     try:
         return '(' + ', '.join(['0x%0*X' % (precision, item)
                                 for item in t]) + ')'
-    except TypeError, why:
+    except TypeError as why:
         print '* failed to convert %r: %s' % (t, why)
         raise
 
@@ -393,7 +393,7 @@
             else:
                 pymap(mappathname, map, dirprefix + codefile,name,comments)
                 marshalmap(mappathname, map, dirprefix + marshalfile)
-        except ValueError, why:
+        except ValueError as why:
             print '* conversion failed: %s' % why
             raise
 
@@ -414,7 +414,7 @@
                 print '* map is empty; skipping'
             else:
                 pymap(mapname, map, dirprefix + codefile,name,comments)
-        except ValueError, why:
+        except ValueError as why:
             print '* conversion failed: %s' % why
 
 if __name__ == '__main__':