Как заставить скрипт на python продолжаться после оператора повышение - PullRequest
1 голос
/ 06 июля 2019

Мне нужно выполнить мою вторую очистку функции после оператора повышение, если моя инструкция else выполняется в первой функции

, но, поскольку это исключение, оно не работает, поэтому моя вторая функция - cleanup () - не работает.

Обратите внимание: мне нужно вызвать исключение в моей первой функции, если строка не найдена

Пожалуйста, дайте мне знать, что я могу сделать, чтобы преодолеть это. Любая помощь очень ценится

Я пытался, если еще, добиться этого с помощью оператора вызова, вызванного else, но он не работает вообще, и я застрял из-за этого. Пожалуйста, помогите

import os
import re

def validated():
    if 'line is up , protocol is up' in open('C:/Users/diwak/Desktop/1.txt').read():
        print("true")

    else:
        raise ("Not found")

def cleanup():
    print ("cleanup still performed")


print (validated())
(cleanup())

Я ожидал, что обе функции будут выполнены:

1) Возникла ошибка исключения для первой функции 2) Выполнена функция очистки

Фактическая выработка:

Программа выходит из первой функции в случае, если условие не соответствует

Ответы [ 2 ]

1 голос
/ 06 июля 2019

Полагаю, это желательно (хотя выглядит странно):

def validated():
    try:
        if 'helo' in 'hello world':
            print("true")
        else:
            raise Exception("Not found")
    except:
        cleanup()

def cleanup():
    print ("cleanup still performed")

validated()
0 голосов
/ 07 июля 2019
def validated():
    try:
        if 'line is up , protocol is up' in open('C:/Users/diwak/Desktop/1.txt').read():
            print("true")
        else:
            print("string not found")
            raise Exception("Not found")
    except:
        pass



def cleanup():
    print ("but cleanup still performed")

validated()
cleanup()

Я думаю, что проход должен работать, если вы согласны

...