带有 try except 块的 if else 语句

我有一个try/except要修改的代码块和if/else语句,它将执行部分代码并跳过其他代码。


这是我现在拥有的逻辑存根:


if arg1 == 'None':

    do something

else:

    do something else


try:

    execute main code

except:

    update failed status


execute_seperate_function(arg)

我想要做的是如果代码进入第一个if statement,然后try/except按原样运行和最后一个函数。但是,如果它进入else statement我想按try原样运行代码,但跳过执行except和最后一个函数。


有没有一种好方法可以做到这一点,而不是将所有内容都放在if/else语句中并使代码变得非常混乱?任何帮助表示赞赏!


一只萌萌小番薯
浏览 332回答 3
3回答

翻过高山走不出你

可以使它成为一个像下面这样的函数,带有一个标志参数,它确定是否def task(flag):    if (flag == True):        try:            execute main code        except:            update failed status        execute_seperate_function(arg)    else:        execute main codeif arg1 == 'None':    task(True)else:    task(False)那是不是更整洁了?取决于do something我的想法。

呼啦一阵风

在某种程度上,这可以通过跨函数拆分逻辑来实现:def do_something():    try:        execute_main_code()    except Exception:        update_failed_status()    execute_separate_function(arg)def do_something_else():    execute_main_code()def execute_main_code():    passdef update_failed_status():    passdef execute_separate_function(arg):    passif arg1 == "None":    do_something()else:    do_something_else()

白猪掌柜的

首先,将你认为的“执行主代码”放入一个函数中,我们可以任意调用“main”:def main:    execute main codeif arg1 == 'None':    try:        main() # execute main code    except Exception:        update failed status    execute_seperate_function(arg) # called whether there was an exception or notelse:    main() # just exec main code without try block
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python