python自定义异常和主动抛出异常
自定义异常主要利用自己定义的异常类的名称,对异常进行分类,没有更多作用
导入re
导入操作系统
classexistserror (执行) :
传球
classkeyinvaliderror(exception ) :
传球
deffun(Path,mnk ) :
''''
在前往path路径的文件中,找到前缀为prev的数据行,检索数据并将其返回给调用方。
1000,成功
1001,文件不存在
1002,关键字为空
1003,未知错误
.
:return:
''''
响应={ ' code ' : 1000,' data': None}
try:
withopen(path,encoding='utf-8 ' ) as f1:
line=f1.readline () )
str=re.match('mnk ',line )。
ifnotOS.path.Exists(path ) :
raise Exception抛出ExistsError类的实例
if not str:
raise KeyInvalidError (
except ExistsError as e: #下的捕捉异常逐行向下匹配,如有捕捉异常则不向下执行
捕捉到response['code']=1003 #异常后,可以制作自己定义的东西
print (响应[ '代码' ]
except Exception as e: #**自己定义多个异常类名的目的是区分将来不同的错误类型,没有更多意义
响应[ '代码' ]=1004
print (响应[ '代码' ]
fun (r ' e : (第26天) s 15第26天)测试',' p ' )
在此,对积极抛出异常进行一点总结
#知识点:如何定制班级
让classMyException(Exception ) : # ) myexception类继承exception
def __init__(self,name,age ) :
self.name=name
self.age=age
try:
#知识点:主动抛出异常就是实例化异常类
raisemyexception('Zhansgan ',19 ) #必须实例化异常,并在实例化时传递参数
except MyException as obj: #这里表示一个软件包。
print(obj.age,obj.name )捕获MyException类带来的信息
except Exception as obj: #万能捕获,以前的可能无法捕获,这里添加Exception作为保底
是打印(obj )