为了账号安全,请及时绑定邮箱和手机立即绑定

带有 try except 块的 if else 语句

带有 try except 块的 if else 语句

一只萌萌小番薯 2022-05-24 17:12:52
我有一个try/except要修改的代码块和if/else语句,它将执行部分代码并跳过其他代码。这是我现在拥有的逻辑存根:if arg1 == 'None':    do somethingelse:    do something elsetry:    execute main codeexcept:    update failed statusexecute_seperate_function(arg)我想要做的是如果代码进入第一个if statement,然后try/except按原样运行和最后一个函数。但是,如果它进入else statement我想按try原样运行代码,但跳过执行except和最后一个函数。有没有一种好方法可以做到这一点,而不是将所有内容都放在if/else语句中并使代码变得非常混乱?任何帮助表示赞赏!
查看完整描述

3 回答

?
翻过高山走不出你

TA贡献1875条经验 获得超3个赞

可以使它成为一个像下面这样的函数,带有一个标志参数,它确定是否


def task(flag):

    if (flag == True):

        try:

            execute main code

        except:

            update failed status

        execute_seperate_function(arg)

    else:

        execute main code


if arg1 == 'None':

    task(True)

else:

    task(False)

那是不是更整洁了?取决于do something我的想法。


查看完整回答
反对 回复 2022-05-24
?
呼啦一阵风

TA贡献1802条经验 获得超6个赞

在某种程度上,这可以通过跨函数拆分逻辑来实现:


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

    pass



def update_failed_status():

    pass



def execute_separate_function(arg):

    pass



if arg1 == "None":

    do_something()

else:

    do_something_else()


查看完整回答
反对 回复 2022-05-24
?
白猪掌柜的

TA贡献1893条经验 获得超10个赞

首先,将你认为的“执行主代码”放入一个函数中,我们可以任意调用“main”:


def main:

    execute main code


if arg1 == 'None':

    try:

        main() # execute main code

    except Exception:

        update failed status

    execute_seperate_function(arg) # called whether there was an exception or not

else:

    main() # just exec main code without try block


查看完整回答
反对 回复 2022-05-24
  • 3 回答
  • 0 关注
  • 331 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号