python try-except 中能有else 块语句吗?
Can there be an else block statement in python try-except?
我正在尝试编写一个订阅列表模块。因此,我有一个声明可能会根据用户的电子邮件 ID 抛出索引超出范围错误。如果是这样,我希望程序做一些事情,如果不是,我希望程序完全做其他事情。我该怎么做?目前我有代码试图添加所有用户而不考虑并使程序崩溃。我理想中想要的是这样的:
try:
check_for_email_id.from_database
except IndexError:
create.user_id.in_database
user.add.to.subscribe_list
else:
user.add.to.subscribe_list
我需要能够在这里添加一个块说,如果没有 IndexError
,请省略“do something
”部分并执行 else
部分。 Python 是否为此提供内置选项?我可以在 Try-Except 语句中使用 if-else 块吗?
此外,避免为 user.add.to.subscribe_list
编写代码两次的好方法是什么?除了创建一个新的 user_add 函数?
是的,python try/except(else/finally) 语句中的 else
恰恰是为了:您希望发生的事情 如果没有例外:
import random
try:
1 / random.randrange(2)
except Exception as e:
print(e)
else:
print('we succeeded!')
finally:
# always prints
print('we just tried to do some division!')
在回答你的第二个问题时,看起来你真正想要的是使用 finally
子句:
try:
check_for_email_id.from_database
except IndexError:
create.user_id.in_database
finally:
# this gets called if there was an error or not
user.add.to.subscribe_list
我正在尝试编写一个订阅列表模块。因此,我有一个声明可能会根据用户的电子邮件 ID 抛出索引超出范围错误。如果是这样,我希望程序做一些事情,如果不是,我希望程序完全做其他事情。我该怎么做?目前我有代码试图添加所有用户而不考虑并使程序崩溃。我理想中想要的是这样的:
try:
check_for_email_id.from_database
except IndexError:
create.user_id.in_database
user.add.to.subscribe_list
else:
user.add.to.subscribe_list
我需要能够在这里添加一个块说,如果没有 IndexError
,请省略“do something
”部分并执行 else
部分。 Python 是否为此提供内置选项?我可以在 Try-Except 语句中使用 if-else 块吗?
此外,避免为 user.add.to.subscribe_list
编写代码两次的好方法是什么?除了创建一个新的 user_add 函数?
是的,python try/except(else/finally) 语句中的 else
恰恰是为了:您希望发生的事情 如果没有例外:
import random
try:
1 / random.randrange(2)
except Exception as e:
print(e)
else:
print('we succeeded!')
finally:
# always prints
print('we just tried to do some division!')
在回答你的第二个问题时,看起来你真正想要的是使用 finally
子句:
try:
check_for_email_id.from_database
except IndexError:
create.user_id.in_database
finally:
# this gets called if there was an error or not
user.add.to.subscribe_list