why?

在开发中一般是禁止写if···else···的,虽然if···else···很好理解,但那样显得代码不专业,而且有时候会有点冗余!

what?

在python中一般都有一个异常类,这里面有一些自带的异常,比如:TypeError、ValueError 等,但这些远远不能满足我们的需求,我们时常会定义自己的异常包,然后导入这个包,这样就可以愉快的开发了,下面就来展示一下如何定义自己的异常类。

how?

我们想让函数返回值不是我们想要的时候就抛出异常,我们完全可以用C语言的if···else··语句,但是为了演示我们是用python的try···except···raise表示抛出异常,就是在返回值不等于True的时候就抛出异常

#一般都会让异常继承这个类,(或者是更高级的BaseException)
#默认大家知道__init__和__str__
class NotEqual(Exception):def __init__(self, msg):self.msg = msgdef __str__(self):return self.msgclass OPT():def test_suit(self, a):if a > 10:return Trueelse:return Falsedef test(self):try:if ( (True != self.test_suit(5)) or(True != self.test_suit(15)) ):#raise表示抛出异常,后面必须是定义过的异常类,#括号中的内容是大家想让程序打印的内容raise NotEqual("not equal")   except NotEqual as e:print("{}".format(e))if __name__ == '__main__':option = OPT()option.test()#运行结果
>>>$ python test.py
>>>  not equal

程序结尾处的print表示打印到终端(屏幕)的内容,在开发中我们还应当加上python的日志系统(self.logger.debug("……")),让输出的内容打印到日志中,方便我们定位问题。

end

本来True == False不是异常,只是一个非真值,但在这里我们将其处理成了异常,因为python肯定没有这样的异常,所以我们必须在开始要定义一个异常类,这样就可以用了。

python自定义异常类相关推荐

  1. [转载] python自定义异常类型和raise抛出异常

    参考链接: Python自定义异常 实际开发中,有时候系统提供的异常类型不能满足开发的需求.这时候你可以通过创建一个新的异常类来拥有自己的异常.异常类继承自 Exception 类,可以直接继承,或者 ...

  2. python自定义异常类一般继承于_自定义异常类一般继承自_______或其子类。

    [填空题]Python语句print('%d%%%d'%(3/2, 3%2))的运行结果是( 1 ). [填空题]自定义异常类一般继承自_______或其子类. [填空题]Python语句" ...

  3. python 自定义异常类_python 自定义异常类的使用,继承Exception

    自定义异常类全部继承自BaseError import traceback class BaseError(Exception): def __init__(self): self.err_msg = ...

  4. python 自定义异常类_python的自定义异常

    1.抛出自定义的异常 你可以用raise语句来引发一个异常.异常/错误对象必须有一个名字,且它们应是Error或Exception类的子类. 我们自定义异常的原因是:因为系统提供的异常类,无法描述我的 ...

  5. python 自定义异常类

    可以根据自身需要设定异常 class HelloError(Exception):def __init__(self,n): self.n=n try:n=input("请输入数字:&quo ...

  6. python自定义异常_Python自定义异常

    python自定义异常 In this tutorial we are going to learn about Python Custom Exception. If you don't know ...

  7. Python异常捕获及自定义异常类

    Python异常捕获及自定义异常类 一.什么是异常? 异常是一个与业务逻辑无关的BUG,一个潜在错误或者网络错误事件等,如:尚未实现的函数,缩进错误,Python语法错误等.该事件可能会在程序执行过程 ...

  8. python中能主动引发异常的是_python--异常处理-主动引发异常-自定义异常类

    一.主动引发异常 并非只有在程序运行出错时才可以引发异常,python允许在代码中使用raise或assert语句主动引发异常. 1.raise语句 1.1基本格式: raise 异常类名 #创建异常 ...

  9. python的自定义异常类,带参Exception,多个except,断言语句,断点,try...except,try...except...else,try...except...finally处理

    1.自定义异常类 class ShortIntegerException(Exception):def __init__(self,length,atleast):Exception.__init__ ...

最新文章

  1. python第五十一课——__slots
  2. 模拟Spring如何在WEB中运行
  3. OFBiz的探索进阶
  4. 485串口测试工具软件_(案例)电脑和仪表之间485通讯的奇怪现象及解决方案
  5. Android中关于Adapter的使用(下)BaseAdapter
  6. Markdown支持的语言
  7. OpenCV图像处理(4)——去除小面积
  8. 什么叫运营---一个人,一张网,一艘船,独钓寒江雪!
  9. Lua学习---编译生成lua和luac
  10. Intellij IDEA如何恢复删除的文件或文件夹
  11. 未来交通技术发展现状和我国面临的挑战
  12. 国外问卷调查做快点有影响吗
  13. 基于ROS1.0的stdr simulation搭建多移动机器人(multiple robots)仿真系统
  14. Github登录不上、下载慢的解决方法
  15. easypoi导出excel不设置样式_EasyPOI 导出excel设置边框,背景颜色,字体样式
  16. 2.6 Python 基本数据类型
  17. 接口定义,常见的接口,常见的接口请求方式,put请求和patch请求的区别
  18. Apache Commons Codec 也就那样吧!!!
  19. html语言标题属性,title (attribute)
  20. 陈可之18岁画的《历史》被中国美术馆收藏,我的18岁呢?

热门文章

  1. unity Vector2 与 Vector3的转换
  2. Yii2之路——安装配置
  3. python三种方法开根号(穷举法、二分法、牛顿拉夫逊法)
  4. 触摸屏驱动三部曲之硬件原理
  5. 四、CDA数据分析师系列_从零进阶_数据分析的统计基础_简明笔记
  6. 美国应摩托要求对苹果产品发起337调查
  7. Telnet的常用命令和开启方式
  8. 极光出现网络异常无法登录的解决方法
  9. setter、getter用法解释
  10. 数据包从源主机到达目标主机的过程