From cefa9172a237a56c67e8c9b302c84c1c3dffb871 Mon Sep 17 00:00:00 2001 From: Serhiy Storchaka Date: Tue, 14 Jun 2016 22:52:04 +0300 Subject: Issue #27238: Got rid of bare excepts in the turtle module. Original patch by Jelle Zijlstra. --- Lib/turtle.py | 18 +++++++++--------- Misc/ACKS | 1 + Misc/NEWS | 3 +++ 3 files changed, 13 insertions(+), 9 deletions(-) diff --git a/Lib/turtle.py b/Lib/turtle.py index cbd4f47..57cf3d9 100644 --- a/Lib/turtle.py +++ b/Lib/turtle.py @@ -179,7 +179,7 @@ def config_dict(filename): continue try: key, value = line.split("=") - except: + except ValueError: print("Bad line in config-file %s:\n%s" % (filename,line)) continue key = key.strip() @@ -192,7 +192,7 @@ def config_dict(filename): value = float(value) else: value = int(value) - except: + except ValueError: pass # value need not be converted cfgdict[key] = value return cfgdict @@ -220,7 +220,7 @@ def readconfig(cfgdict): try: head, tail = split(__file__) cfg_file2 = join(head, default_cfg) - except: + except Exception: cfg_file2 = "" if isfile(cfg_file2): cfgdict2 = config_dict(cfg_file2) @@ -229,7 +229,7 @@ def readconfig(cfgdict): try: readconfig(_CFG) -except: +except Exception: print ("No configfile read, reason unknown") @@ -653,7 +653,7 @@ class TurtleScreenBase(object): x, y = (self.cv.canvasx(event.x)/self.xscale, -self.cv.canvasy(event.y)/self.yscale) fun(x, y) - except: + except Exception: pass self.cv.tag_bind(item, "" % num, eventfun, add) @@ -1158,7 +1158,7 @@ class TurtleScreen(TurtleScreenBase): raise TurtleGraphicsError("bad color string: %s" % str(color)) try: r, g, b = color - except: + except (TypeError, ValueError): raise TurtleGraphicsError("bad color arguments: %s" % str(color)) if self._colormode == 1.0: r, g, b = [round(255.0*x) for x in (r, g, b)] @@ -2702,7 +2702,7 @@ class RawTurtle(TPen, TNavigator): return args try: r, g, b = args - except: + except (TypeError, ValueError): raise TurtleGraphicsError("bad color arguments: %s" % str(args)) if self.screen._colormode == 1.0: r, g, b = [round(255.0*x) for x in (r, g, b)] @@ -3865,7 +3865,7 @@ def read_docstrings(lang): try: # eval(key).im_func.__doc__ = docsdict[key] eval(key).__doc__ = docsdict[key] - except: + except Exception: print("Bad docstring-entry: %s" % key) _LANGUAGE = _CFG["language"] @@ -3875,7 +3875,7 @@ try: read_docstrings(_LANGUAGE) except ImportError: print("Cannot find docsdict for", _LANGUAGE) -except: +except Exception: print ("Unknown Error when trying to import %s-docstring-dictionary" % _LANGUAGE) diff --git a/Misc/ACKS b/Misc/ACKS index 632c85c..27bd691 100644 --- a/Misc/ACKS +++ b/Misc/ACKS @@ -1655,6 +1655,7 @@ Uwe Zessin Cheng Zhang Kai Zhu Tarek Ziadé +Jelle Zijlstra Gennadiy Zlobin Doug Zongker Peter Åstrand diff --git a/Misc/NEWS b/Misc/NEWS index 71dbb16..d81a374 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -13,6 +13,9 @@ Core and Builtins Library ------- +- Issue #27238: Got rid of bare excepts in the turtle module. Original patch + by Jelle Zijlstra. + - Issue #27122: When an exception is raised within the context being managed by a contextlib.ExitStack() and one of the exit stack generators catches and raises it in a chain, do not re-raise the original exception -- cgit v0.12