错误与异常

语法错误 SyntaxError

语句或表达式在语法上错误

image
原因:if语句最后要加上冒号

异常 Exceptions

KeyError

即使语句或表达式在语法上是正确的,但在尝试执行它时可能会导致错误。

image
原因:在字典中查找一个键,但是其中并不存在这个键,就会抛出异常。

IndexError

超过了能索引的值,也会引发异常

image

TypeError

image
原因:两个字符串可以通过+拼接,但一个字符串和一个数字直接用+连接就会异常

ZeroDivisionError

除数为 0 时异常

image

ValueError

所给元素不符合规定的变量类型

FileNotFoundError

找不到文件产生的异常

file_name = input("请输入文件名:")
f = open(file_name)

如果文件不存在,或者如果输入文件名时没有带上文件名后缀,就无法找到文件,出现FileNotFoundError
image

另外,如果python文件和文本文件不在一个路径里,要注意加上路径,否则也会找不到文件。
image

异常的处理

try-except

一旦try语句中出现异常,就会直接执行except (xxx as reason:)中的语句。

处理单个异常

image

可以用str(reasonn)看到具体出错的原因:
image
image

处理多个异常

一个try可以跟随多个except:
image

也可以利用元组将异常合并,只用一个except:
image

try-except-finally

try:
    检测范围
except Exception [as reason]:
    出现异常后的处理方式
finally:
    无论是否发生异常都要执行的内容

例如:
image
由于try语句中出现异常后,会跳过后面的语句:此时a=1+'2'会出现异常,就不会执行try中的f.close(),写入test.txt文件中的‘程旭园’就没有被保存。

因此要把f.close()放在finally语句中样写入的内容才能被安全保存在文件里:
image

try-except-else

try: # 运行代码
    <语句>
except <语句>: # 如果在try部分发生`name`异常
    <语句>
else: # 如果没有异常发生
    <语句>

如果try语句执行时没有异常,python将执行else后的语句:

image

posted @ 2022-07-29 20:27  Vonos  阅读(84)  评论(0)    收藏  举报