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 -- https://mail.python.org/mailman/listinfo/python-list