在学习python时,我读了关于我的python的问题,但我不明白为什么要用python完成这种实现。
情况1 :抛出异常,并且sd
设置为45
try:
raise ValueError()
sd = 45
except(OSError):
sd = 50
else:
sd = 23
情况2 :异常由except
处理,并且sd设置为50
try:
raise ValueError()
sd = 45
except(ValueError):
sd = 50
else:
sd = 23
情况3 :未发生错误,则将执行其他操作,并且sd
设置为23
try:
sd = 45
except(ValueError):
sd = 50
else:
sd = 23
我们始终希望我们的代码能够正常工作,并且如果引发错误,则应该对其进行处理。但是为什么else
在这里发挥作用,如果try块中的代码没有错误,则运行此代码。
请建议我是否误解,错过或误导了
答案 0 :(得分:1)
我建议您检出https://docs.python.org/3/tutorial/errors.html-这是整个章节:
try…except语句具有可选的else子句,当存在该子句时,必须遵循所有except子句。对于try子句未引发异常的必须执行的代码而言,这很有用。 ....
@Edit 要详细说明-else
的意义是当您执行某些可能会可能错误的操作(例如,打开可能不存在),则可以将利用该文件的代码放在else
语句中,而不是放在try
内,从而避免捕获try
语句未引发的异常(即完全与打开文件无关的东西破坏了文件的使用范围?)