抛出自定义的异常

你可以用raise语句来引发一个异常。异常/错误对象必须有一个名字,且它们应是Error或Exception类的子类

下面是一个引发异常的例子:

class ShortInputException(Exception):'''自定义的异常类'''def __init__(self, length, atleast):#super().__init__()self.length = lengthself.atleast = atleastdef main():try:s = input('请输入 --> ')if len(s) < 3:# raise引发一个你定义的异常raise ShortInputException(len(s), 3)except ShortInputException as result:#x这个变量被绑定到了错误的实例print('ShortInputException: 输入的长度是 %d,长度至少应是 %d'% (result.length, result.atleast))else:print('没有异常发生.')main()

运行结果如下:

注意

  • 以上程序中,关于代码#super().init()的说明

这一行代码,可以调用也可以不调用,建议调用,因为__init__方法往往是用来对创建完的对象进行初始化工作,如果在子类中重写了父类的__init__方法,即意味着父类中的很多初始化工作没有做,这样就不保证程序的稳定了,所以在以后的开发中,如果重写了父类的__init__方法,最好是先调用父类的这个方法,然后再添加自己的功能

(更新时间)2021年3月26日 python基础知识(自定义异常)相关推荐

  1. (更新时间)2021年3月26日 python基础知识(模块的导入)

    模块 <1>Python中的模块 在Python中有一个概念叫做模块(module),这个和C语言中的头文件以及Java中的包很类似,比如在Python中要调用sqrt函数,必须用impo ...

  2. (更新时间)2021年3月24日 python基础知识(文件和文件夹相关操作)

    文件和文件夹相关操作 有些时候,需要对文件进行重命名.删除等一些操作,python的os模块中都有这么功能 1. 文件重命名 os模块中的rename()可以完成对文件的重命名操作 rename(需要 ...

  3. (更新时间)2021年3月24日 python基础知识(魔法方法)

    1.魔法方法 在 python 的类中,有一类方法,这类方法以 `两个下划线开头` 和`两个下划线结尾`, 并且在`满足某个特定条件的情况下,会自动调用`. 这类方法,称为魔法方法如何学习魔法方法: ...

  4. (更新时间)2021年3月21日 python基础知识(函数的返回值)

    1.函数返回值 <1>"返回值"介绍 所谓"返回值",就是程序中函数完成一件事情后,最后给调用者的结果 <2>带有返回值的函数 想要在函 ...

  5. (更新时间)2021年3月21日 python基础知识(函数的定义和使用)

    函数定义和调用 <1>定义函数 定义函数的格式如下: def 函数名():代码 demo: # 定义一个函数,能够完成打印信息的功能 def print_info():print('--- ...

  6. (更新时间)2021年5月11日 MongoDB数据库 MongoDB面试题

    MongoDB高频面试题 文章目录 MongoDB高频面试题 1.MongoDB是什么? 2.MongoDB有哪些特点? 3.MySQL与MongoDB之间最基本的差别是什么? 4.monogodb中 ...

  7. (更新时间)2021年5月15日 SqlServer数据库 SqlServer面试题

    数据库SqlServer笔试题 文章目录 数据库SqlServer笔试题 一.数据库基础知识(通用)篇 1.说说主键.外键.超键.候选键 2.为什么用自增列作为主键? 3.触发器的作用是什么? 4.什 ...

  8. (更新时间)2021年5月18日 C#.NET笔试题 高级篇

    C#.NET笔试题 高级进阶篇 文章目录 C#.NET笔试题 高级进阶篇 1.说说什么是架构模式. 2.架构的5大要素是哪5大要素? 3.说说什么事集群,什么是分布式. 4.说说对Redis的理解 5 ...

  9. (更新时间)2021年5月12日 redis数据库 Redis面试题

    Redis高频面试题 文章目录 Redis高频面试题 1.什么是Redis?简述它的优缺点? 2.Redis相比memcached有哪些优势? 3.Redis支持哪几种数据类型? 4.Redis主要消 ...

最新文章

  1. thinkphp url去掉index.php,thinkphp 去掉URL 里面的index.php(?s=)
  2. c++------------提取文件中的信息
  3. PHP 获取IP地址 获取当前时间 写文件
  4. java对象复制到另一个对象中_spring: beanutils.copyproperties将一个对象的数据塞入到另一个对象中(合并对象)...
  5. JDBC操作数据库的基本流程
  6. ABP框架使用拦截器动态配置租户过滤器
  7. python 优先队列_python中使用优先队列
  8. Linux Epoll ET模式EPOLLOUT和EPOLLIN触发时刻
  9. Python 一键转 Java?“Google 翻译”你别闹
  10. hashset去重原理_快手:Druid精确去重的设计与实现
  11. K3CLOUD业务系统编码规则设置
  12. 拼多多平台API接入文档
  13. 菜鸟驿站进军万亿社区市场
  14. Mysql 实现多种逻辑删除方案
  15. html 自动打开超链接,JS、html打开超链接的几种形式
  16. [cocos2d-x]SpaceFighting[安卓/IOS都适用]
  17. CTFSHOW WEB入门
  18. 【单片机毕业设计】【mcuclub-jj-051】基于单片机的书桌的设计
  19. Java怎么屏蔽骂人的词_表示嫌弃一个人的词语-高级的含蓄的骂人的话-形容很反感一个人成语...
  20. 中兴事件再起,美国发布“晋华禁令”,这次遭殃的是存储芯片DRAM

热门文章

  1. 如何使用ADC测量我们设备的锂电池电压
  2. springboot启动报jar包加载异常问题解决
  3. python批量处理网络设备的巡检文本文件,提取关键指标写入表格或数据库
  4. Microsoft Visual Basic for Applications 编译错误:更新 Declare 语句
  5. 计算机日常应用之教学PPT-1
  6. java中如何删除文件或清除文件夹下的所有文件
  7. 图片噪声 降噪 边缘检测
  8. raspberry pi_如何为复古游戏设置Raspberry Pi
  9. 小学生python游戏编程arcade----灯光示例
  10. C语言实现贪吃蛇(easyx)