1,什么时候用异常处理,为什么用
异常即是一个事件,该事件会在程序执行过程中发生,影响了程序的正常执行。
一般情况下,在Python无法正常处理程序时就会发生一个异常。
异常是Python对象,表示一个错误。
当Python脚本发生异常时我们需要捕获处理它,否则程序会终止执行。
异常处理的表现形式
--------------------------------------------------------割割更健康-------------------------------------------------
try:
代码
except 异常类型:
一旦检测到异常代码,就会执行这
ss='lqz'
try:
raise KeyError('主动触发异常')
int(ss)
except KeyError as e:
print(e)
except IndexError as e:
print(e)
#一般exception是万能的,单独用一个就行,但是都放在最后捕捉不知道会发生的错误类型
except Exception as e: #Excrption是例外的意思
print('你是傻子吗')
print(e)
else:
print('try 代码块里没有异常,会执行我')
finally: #finally 必须放在最后,等同f.cloce() 无论是否异常都会执行
print('无论如何都会执行')
-------------------------------------------------------------------------------------------
class a(BaseException):
def __init__(self, msg):
super().__init__()
self.msg = msg
def __str__(self):
return self.msg
# raise TypeError('这是类型错误')
raise a('我自己的异常')
#
-------------------------------------------------------------------------------------
如果错误发生的条件是可预知的,我们需要用if进行处理:在错误发生之前进行预防
age=18 guess= input('请输入年龄') if guess.isdigit():#age不为数字的时候,就会出错,这个我们是可以预测的,所以要用if判断处理调 guess =int(guess) if guess ==age: print('猜对了')
如果错误发生的条件是不可预知的,则需要用到try...except:在错误发生之后进行处理
# 比如从网上爬数据,放到一个列表里,列表有两个数据,你想要取第三个数据,就会出错,列表里的值,不可预知,就要用try...except ll=['数据1','数据2'] try: ll[2] except IndexError as e: print(e)