FAQ

On 9/3/2015 11:05 AM, kbtyo wrote:


I am experimenting with many exception handling and utilizing continue vs pass.

'pass' is a do-nothing place holder. 'continue' and 'break' are jump
statements


[snip]

However, I am uncertain as to how this executes in a context like this:

import glob
import csv
from collections import OrderedDict

interesting_files = glob.glob("*.csv")

header_saved = False
with open('merged_output_mod.csv','w') as fout:

for filename in interesting_files:
print("execution here again")
with open(filename) as fin:
try:
header = next(fin)
print("Entering Try and Except")
except:
StopIteration
continue
else:
if not header_saved:
fout.write(header)
header_saved = True
print("We got here")
for line in fin:
fout.write(line)

My questions are (for some reason my interpreter does not print out any readout):

1. after the exception is raised does the continue return back up to the beginning of the for loop (and the "else" conditional is not even encountered)?

2. How would a pass behave in this situation?

Try it for yourself. Copy the following into a python shell or editor
(and run) see what you get.


for i in [-1, 0, 1]:
      try:
          j = 2//i
      except ZeroDivisionError:
          print('infinity')
          continue
      else:
          print(j)


Change 'continue' to 'pass' and run again.


--
Terry Jan Reedy

Search Discussions

Discussion Posts

Previous

Follow ups

Related Discussions

Discussion Navigation
viewthread | post
posts ‹ prev | 7 of 10 | next ›
Discussion Overview
grouppython-list @
categoriespython
postedSep 3, '15 at 3:05p
activeSep 3, '15 at 4:37p
posts10
users4
websitepython.org

People

Translate

site design / logo © 2017 Grokbase