From 0bb580d297bdc6ccb33fcd15e317a79112e77750 Mon Sep 17 00:00:00 2001 From: Tim Peters Date: Sun, 10 Jun 2001 18:58:26 +0000 Subject: [PATCH] SF bug 431772: traceback.print_exc() causes traceback Patch from Michael Hundson. format_exception_only() blew up when trying to report a SyntaxError from a string input (line is None in this case, but it assumed a string). Bugfix candidate. --- Lib/traceback.py | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/Lib/traceback.py b/Lib/traceback.py index a758349f91f..70b16067b9d 100644 --- a/Lib/traceback.py +++ b/Lib/traceback.py @@ -171,19 +171,20 @@ def format_exception_only(etype, value): if not filename: filename = "" list.append(' File "%s", line %d\n' % (filename, lineno)) - i = 0 - while i < len(line) and line[i].isspace(): - i = i+1 - list.append(' %s\n' % line.strip()) - if offset is not None: - s = ' ' - for c in line[i:offset-1]: - if c.isspace(): - s = s + c - else: - s = s + ' ' - list.append('%s^\n' % s) - value = msg + if line is not None: + i = 0 + while i < len(line) and line[i].isspace(): + i = i+1 + list.append(' %s\n' % line.strip()) + if offset is not None: + s = ' ' + for c in line[i:offset-1]: + if c.isspace(): + s = s + c + else: + s = s + ' ' + list.append('%s^\n' % s) + value = msg s = _some_str(value) if s: list.append('%s: %s\n' % (str(stype), s))