一.认识异常
Python遇到错误后,会引发异常。如果异常对象并未被处理或捕捉,则程序就会用所谓的回溯(Traceback,一种错误信息)来终止执行。
异常举例:
open('python.txt','r')
这里就会报错:
二.处理异常
- 异常是指在程序执行过程中发生的一个事件,会影响程序的正常运行,所以一般需要进行捕获异常并处理。
- 异常的捕获使用try/except/finally语句进行捕获操作,并告诉python发生异常时怎么办.
1.基本语法:
try:
<语句>
except <异常类型1>[, 异常参数名1]:
<异常处理代码1>
except <异常类型2>[, 异常参数名2]:
<异常处理代码2>
else:
<没有异常时候的处理代码>
finally:
<不管是否有异常,最终执行的代码块>
try语句按照如下方式工作:
1.首先,执行try子句(在关键字try和关键字except之间的语句)
2.如果没有异常发生,忽略except子句,try子句执行后结束。
3.如果在执行try子句的过程中发生了异常,那么try子句余下的部分将被忽略。如果异常的类型和 except 之后的名称相符,那么对应的except子句将被执行。最后执行 try 语句之后的代码。
4.如果一个异常没有与任何的except匹配,那么这个异常将会传递给上层的try中。
5.一个 try 语句可能包含多个except子句,分别来处理不同的特定的异常。
6.多只有一个分支会被执行。 处理程序将只针对对应的try子句中的异常进行处理,而不是其他的 try 的处理程序中的异常。
7.一个except子句可以同时处理多个异常,这些异常将被放在一个括号里成为一个元组.
2.异常名称+描述:
######3. 举例:
try:
print(aaa) #如果这句话有错,就会捕获到异常
except ValueError: #NameError 异常
print('变量未定义') #对NameError异常的处理
except NameError:
print('变量未定义')
4.捕获异常的具体信息
try:
print(aaa) #如果这句话有错,就会捕获到异常
except NameError as e:
print(e)#打印具体的异常信息
5.包含多个异常
try:
# print(aaa)
files = open('aaa.txt','r',encoding= 'utf-8') #如果这句话有错,就会捕获到异常
except (NameError,FileNotFoundError) as e:
print(e)#打印具体的异常信息
6.esle:没有异常时要执行的语句
try:
files = open('aaa.txt','r',encoding= 'utf-8') #如果这句话有错,就会捕获到异常
except Exception as e: #有异常时执行