异常的概念及捕获
学会查看错误信息:错误位置(查看异常站信息),异常类型,异常说明
错误类型
while True:
try:
num = input(“请输入一个整数:”)
num = int(num)
print(num * 10)
#a
except ValueError as e: #2 except ValueError,e
print(e)
continue
except NameError as e:
print(e)
break
finally:
print(“我是总会被执行到的语句,一般用来实现清理动作。”)
当try子句发生异常时,在去异常点之后的语句不予执行直接依次进入except子句进行异常类型判定,判定通过则进入except子句中执行处理语句,该except执行完成之后进入finally子句
在所有的except子句中都没有捕获异常时,该异常将交给其上一级的try语句进行处理,直至异常被处理或一直没处理则报错
对于python的标准异常有python解释器主动抛出
except子句可以有多条,分别处理不同的异常,需要注意的是一个异常只能被捕获到一次
except子句没有申明任何异常类型则代表捕获所用的错误一般写在最后一个except位置上
finally 子句总会被执行,finally不是一个必须的子句一般用来执行清理动作
else 子句一般写在except之后 finally之前 else在没有异常时被执行
使用raise语句手动抛出错误,其作用主要用来抛出用户自定义错误(自动触发用户错误)
class MyError(Exception):
def init(self,msg):
self.msg = msg
def str(self):
return self.msg
while True:
try:
num = input(“请输入一个整数:”)
num = int(num)
num *= 10
if num > 20:
raise MyError(“只是一个用户定义的错误”) #手动触发用户异常
except NameError :
print(“Name”)
except ValueError :
print(“Value”)
except MyError as e: #用户异常捕获
print(e)
except Exception as e:
print(“e”)
continue
else:
print(“我是没错误时执行的”)
finally:
print(“我是总会被执行到的语句,一般用来实现清理动作。”)
异常处理的流程:
1.异常的捕获
2.异常的处理
3.手动触发异常
4.用户异常定义(Exception是所有异常的基础类)