异常处理的目的:
# 1、不希望遇到异常就退出 # 2、 如果遇到异常希望做特殊处理,而不是直接退出程序
except 可以有多个
# Exception 是很多异常类的基类 # 如果父类异常捕获放在最前面,就会吞噬后面所有的子类异常捕获 # 如果捕获的错误异常与触发的错误异常不一致,程序就捕获不到,然后抛出异常
try:
print("start...")
#实际不存在这个文件,如果存在则会执行这一步,不存在则会执行except
fp = open("test.txt")
print("end....")
except:
print("no such file ")
try:
print("start...")
int("abc")
a = 100 / 0
# 内建异常
except ValueError as e:
print(e)
except ZeroDivisionError:
print("除数为0")
except Exception:
print("this is exception")
print("prcoess end ....")
try:
print("else test...")
int("abc")
except ValueError:
print("value error")
else:
print("else test end...")
try:
print("finally test...")
int("abc")
# 1/0
except ValueError:
print("value error")
# 无论什么情况也要执行
finally:
print("finally end...")
# 手动抛出异常 # raise 关键字 # raise # raise 异常类 # raise 异常类(说明信息)
raise IndexError
raise IndexError("超出范围")
print("end raise..")