带有 try except 块的 else 语句
If else statement with try except block
我有一个要修改的 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
语句中并使代码变得非常混乱?感谢您的帮助!
可以使它成为一个像下面这样的函数,带有一个标志参数来确定是否
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
是什么。
在某种程度上,这可以通过跨函数拆分逻辑来实现:
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()
首先,将你认为的'execute main code'放入一个函数中,我们可以任意调用'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
我有一个要修改的 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
语句中并使代码变得非常混乱?感谢您的帮助!
可以使它成为一个像下面这样的函数,带有一个标志参数来确定是否
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
是什么。
在某种程度上,这可以通过跨函数拆分逻辑来实现:
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()
首先,将你认为的'execute main code'放入一个函数中,我们可以任意调用'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