Другой подход к блокам try-except

try:
    pos = name.find("#")
    name = name[:pos]
except:
    pass
try:
    pos = name.find("TDCJ")
    name = name[:pos]
except:
    pass

Есть ли способ объединить эти две попытки и исключения? Моя программа продолжает строиться. Мне кажется, что в ней слишком много блоков try и excpet. Как избежать частого добавления попыток и исключений?


person Varsha    schedule 29.07.2020    source источник
comment
В зависимости от вашего фактического кода это может быть случай DRY, поэтому, возможно, подумайте о помещая это в функцию. Также имейте в виду, что у исключения должно быть действие для решения проблемы. Я думаю/надеюсь, что pass здесь просто для более краткого вопроса.   -  person Sirko    schedule 29.07.2020


Ответы (1)


Если try-except совпадает, вы можете просто зациклить нужные элементы строки. Что-то вроде следующего:

l = ["#", "TDCJ"]

for elem in l:
    try:
        pos = name.find(elem)
        name = name[:pos]
    except:
        pass

Как правило, вы должны придерживаться принципа Не повторяйтесь (DRY).

person David    schedule 29.07.2020