Use two-argument form of next() and use a return-statement instead of an explicit raise StopIteration
diff --git a/Lib/difflib.py b/Lib/difflib.py
index 9bc0d0d..ae3479d 100644
--- a/Lib/difflib.py
+++ b/Lib/difflib.py
@@ -1448,10 +1448,7 @@
             # are a concatenation of the first character of each of the 4 lines
             # so we can do some very readable comparisons.
             while len(lines) < 4:
-                try:
-                    lines.append(next(diff_lines_iterator))
-                except StopIteration:
-                    lines.append('X')
+                lines.append(next(diff_lines_iterator, 'X'))
             s = ''.join([line[0] for line in lines])
             if s.startswith('X'):
                 # When no more lines, pump out any remaining blank lines so the
@@ -1514,7 +1511,7 @@
                 num_blanks_to_yield -= 1
                 yield ('','\n'),None,True
             if s.startswith('X'):
-                raise StopIteration
+                return
             else:
                 yield from_line,to_line,True