持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第23天,点击查看活动详情
1. 捕获未知错误
- 在开发时,要预判到所有可能出现的错误,还是有一定难度的。当然,如果能预判到所有的错误类型,我们就可以根据不同的错误类型做出不同的响应。
- 如果希望程序无论出现任何错误,都不会因为Python解释器抛出异常而被终止,因此我们就要学习一下如何捕获未知错误,可以再增加一个
except语法如下:
except Exception as result
print("未知错误 %s" % result)
2. 案例演示
😊 案例需求:请提示用户输入一个数,然后计算8÷用户输入数字的结果,若用户输入错误返回错误信息,并且能够保证程序正常执行不中断。
😊 代码演示如下所示:其中我们使用了Exception捕获了未知错误,使得无论出现何种错误程序都不中断。
try:
# 提示用户输入一个整数
num = int(input("请输入一个整数:"))
# 使用8除以用户输入的整数并且输出
result = 8 / num
print(result)
except ValueError:
# 有针对性地编写错误处理代码
print("请输入正确的整数")
# 想要判断多少种错误类型,就把多少种错误类型依次类推写在这里
except Exception as result:
print("未知错误 %s" % result)
😊 程序运行结果如下图所示:当用户输入一个0时,得到如下运行结果。这样我们就不需要预判到所有的未知错误,都能够保证程序正常执行。
3. 异常捕获的完整语法
在实际开发中,为了能够处理复杂的异常情况,完整的异常语法如下:
try:
尝试执行的代码
except:
出现错误的处理
except Exception as result
print("未知错误 %s" % result)
else:
# 没有异常才会执行的代码
pass
finally:
# 无论是否有异常,都会执行的代码
print("无论是否有异常,都会执行的代码")
- 🚀 若try后面的代码正常执行完成,没有出现任何错误的时候。不会执行except下方的代码,但是会来到else下方来执行else下方的代码。还会继续执行finally下方的代码。
- 🚀 而finaliy下方的代码,无论是否出现错误,都会被执行的代码。
- 🚀 若执行代码时,一旦出现错误,就会跳到相应的except执行下方代码。然后会来到finally,执行finally下方的代码。