博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python自定义异常和主动抛出异常
阅读量:5905 次
发布时间:2019-06-19

本文共 1539 字,大约阅读时间需要 5 分钟。

python自定义异常和主动抛出异常

自定义异常主要是利用了自己定义的异常类的名字,对异常进行分门别类,再没有别的作用

import reimport osclass ExistsError(Exception):    passclass KeyInvalidError(Exception):    passdef fun(path,mnk):    """    去path路径的文件中,找到前缀为prev的一行数据,获取数据并返回给调用者。        1000,成功        1001,文件不存在        1002,关键字为空        1003,未知错误        ...    :return:    """    response = {'code': 1000, 'data': None}    try:        with  open(path,encoding="utf-8") as f1:            line=f1.readline()            str = re.match("mnk", line)        if not os.path.exists(path):            raise Exception() #抛出的是ExistsError类的一个实例        if not str:            raise KeyInvalidError()    except ExistsError as e:                #下面的捕获异常是逐行往下匹配的,只要捕获到异常就不往下执行了        response['code']=1003               #捕获异常以后可以做一些自己定义的东西        print(response['code'])    except Exception as e:                  #**自己定义多个异常类名的目的就是将来区分不同的错误类型,再没有别的意思        response['code'] = 1004        print(response['code'])fun(r"E:\day26\s15day26\test", "p")

 

下面是对主动抛出异常的一点总结

#知识点:如何自定义类class MyException(Exception):                   #让MyException类继承Exception    def __init__(self,name,age):        self.name = name        self.age = agetry:    #知识点:主动抛出异常,就是实例化一个异常类    raise MyException("zhansgan",19)            #实例化一个异常,实例化的时候需要传参数except MyException as obj:                      #这里体现一个封装,    print(obj.age,obj.name)                     #捕获的就是MyException类携带过来的信息except Exception as obj:                        #万能捕获,之前的可能捕获不到,这里添加Exception作为保底    print(obj)

  

转载于:https://www.cnblogs.com/zhuhaofeng/p/9567282.html

你可能感兴趣的文章
SQL Server快捷方式丢了怎么启动
查看>>
Cocos2d-x V2.x版本对64bit的支持
查看>>
linux 下各个头文件的作用[典]
查看>>
HTTP Content-type
查看>>
Mysql中类似于nvl()函数的ifnull()函数
查看>>
[LintCode] Implement Trie 实现字典树
查看>>
数据集市层——论为什么随着技术分析的深入,决策数据报表问题越来越多
查看>>
three.js 来源目光(十三)Math/Ray.js
查看>>
教你如何精通Struts:Tiles框架
查看>>
Atitit. 包厢记时系统 的说明,教程,维护,故障排查手册v2 pb25.doc
查看>>
Linux下 mkdir 命令详解
查看>>
LeetCode——Longest Consecutive Sequence
查看>>
JavaScript - 返回头部
查看>>
invalidate()和postInvalidate() 的区别及使用
查看>>
JAVA并发编程实战---第二章:线程安全性
查看>>
docker命令总结
查看>>
SQLite返回码
查看>>
子选择器和后代选择符的区别
查看>>
Java生成各种条形码
查看>>
【设计模式】外观模式
查看>>