异常处理
概念:Python使用称为“异常”的特殊对象来管理程序执行期间发生的错误
代码块:try - except
- ZeroDivisionError异常:(除以0)
print("计算除法,输入q则退出")
while True:
num1 = input("第一个数:")
if num1 == "q":
break
num2 = input("第二个数:")
if num2 == "q":
break
try:
answer = int(num1) / int(num2) #try包含可能出错的代码块
except ZeroDivisionError:
print("除数不可为0") #except匹配异常类型
else:
print(answer) #else在无异常时执行
- FileNotFoundError: (文件找不到)
def count_words(filename):
"""计算一个文件中大致包含多少单词"""
try:
with open(filename, "r") as file:
contents = file.read()
except FileNotFoundError:
print("文件不存在")
else:
words = contents.split() #以空格分割文本,返回列表
print("文件中大约有%d个单词" %len(words))
count_words("file.txt")
- 万能异常:Exception
try:
代码块
except 异常1:
异常1的解决办法
except 异常2:
异常2的解决办法
except Exception:
剩余的其他异常解决办法
- “一声不吭”:pass
用法:程序遇到 pass 什么也不做
try:
print(5/0)
except ZeroDivisionError:
pass
此时程序啥输出也没有,一声不吭
注意:
编写的很好的且详尽测试的代码不容易出现内部错误,如语法错误、逻辑错误,但只要程序依赖于外部因素,如用户输入、存在指定的文件、有网络链接等就可能出现异常!