在引发语句后如何使python脚本继续

时间:2019-07-06 08:22:37

标签: exception python-3.6

如果我的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 个答案:

答案 0 :(得分:1)

我想这是理想的(虽然看起来很奇怪):

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

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

validated()

答案 1 :(得分:0)

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()

我认为如果您同意通行证也应该有效