Not cathing nested StopIteration

Antoon Pardon antoon.pardon at rece.vub.ac.be
Fri Jul 21 04:32:36 EDT 2017


This is python 3.4 on a debian box

In the code below, line 36 raises a StopIteration, I would have
thought that this exception would be caught by line 39 but instead
I get a traceback.

Did I miss something or is this a bug?

This is the code:

    try:                                                             # 21
        filename = os.path.join(lang_path, lang)                     # 22
        fl = open(filename)                                          # 23
    except FileNotFoundError:                                        # 24
        try:                                                         # 25
            lst = lang.split('_')                                    # 26
            prefix = lst[0] + '*'                                    # 27
            try:                                                     # 28
                lst[1] = lst[0].upper()                              # 29
            except IndexError:                                       # 30
                lst.append(lst[0].upper())                           # 31
            lang = '_'.join(lst)                                     # 32
            filename = os.path.join(lang_path, lang)                 # 33
            fl = open(filename)                                      # 34
        except FileNotFoundError:                                    # 35
            lang = next(iglob(os.path.join(lang_path, prefix)))      # 36
            filename = os.path.join(lang_path, lang)                 # 37
            fl = open(filename)                                      # 38
    except StopIteration:                                            # 39
        fl = ()                                                      # 40

This is the traceback:

Traceback (most recent call last):
  File "/home/antoon/src/projecten/richter/translate.py", line 23, in use_lang
    fl = open(filename)
FileNotFoundError: [Errno 2] No such file or directory: '/home/antoon/src/projecten/richter/locus/nl'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/antoon/src/projecten/richter/translate.py", line 34, in use_lang
    fl = open(filename)
FileNotFoundError: [Errno 2] No such file or directory: '/home/antoon/src/projecten/richter/locus/nl_NL'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "lang_test", line 4, in <module>
    use_lang("Nederlands")
  File "/home/antoon/src/projecten/richter/translate.py", line 36, in use_lang
    lang = next(iglob(os.path.join(lang_path, prefix)))
StopIteration

-- 
Antoon.



More information about the Python-list mailing list