异常:

下面定义了一个CandleShop类:

class CandleShop:name = "Here's a Hot Tip: Buy Drip Candles"def __init__(self, stock):self.stock = stockdef buy(self, color):self.stock[color] = self.stock[color] - 1candle_shop = CandleShop({'blue': 6, 'red': 2, 'green': 0})
candle_shop.buy('blue')

1)自定义一个异常类OutOfStack

2)请修改实例buy当购买蜡烛的量超出库存时会抛出OutOfStack异常

3)想办法在主程序中加一个代码会引起程序抛出OutOfStack

4)捕获该异常,并输出异常的具体信息。

class CandleShop:name = "Here's a Hot Tip: Buy Drip Candles"def __init__(self, stock):self.stock = stockdef buy(self, color):self.stock[color] = self.stock[color] - 1class OutOfStack(Exception):     # (1)自定义一个异常类OutOfStackpassdef new_buy(self, color):      # (2)动态修改实例buy当购买蜡烛的量超出库存时会抛出OutOfStack异常if self.stock[color] > 0:self.stock[color] = self.stock[color] - 1else:raise OutOfStack("购买蜡烛的量超出库存!")     # 产生异常try:candle_shop = CandleShop({'blue': 6, 'red': 2, 'green': 0})CandleShop.buy = new_buycandle_shop.buy('blue')candle_shop.buy('green')      # (3)加一个代码会引起程序抛出OutOfStack
except OutOfStack as e:      # (4)捕获该异常print(e)  # 输出异常的具体信息
else:print("蜡烛还有库存!")

注释详细,就不多解释了!

Python自定义一个异常类【注释详细】相关推荐

  1. python中exception类的_Python自定义一个异常类的方法

    如何实现自定义一个异常 python内置了许多异常类,为编写代码划定红线,才使调试代码时能及时发现错误.那么我们编写一个模块也可以为使用此模块者划定红线,来约束使用者可用哪些数据,这就需要自定义异常类 ...

  2. 如何自定义一个异常类

    如何自定义一个异常类 参考文章: (1)如何自定义一个异常类 (2)https://www.cnblogs.com/d1349077083/p/4273188.html (3)https://www. ...

  3. 用Python自定义一个时钟类、定时任务类

    分析需求 分析框架 显示时间的类 秒表计时的类 定时任务的类 分析需求 最初,因为使用time模块显示日期时,每次都要设置时间字符串的格式,挺麻烦,但还是忍了. 后来,在处理多线程任务时需要实现定时控 ...

  4. python 多线程 类_Python中如何自定义一个多线程类呢?

    摘要: 下文讲述Python中自定义一个多线程类的方法分享,如下所示: 实现思路: 1.定义一个类继承threading.Thread 2.在自定义类中构造函数重写run方法 例: Python3中自 ...

  5. java 异常处理的关键字_java异常,异常处理,异常类 关键字:throws 和 throw 自定义的异常类...

    packagecn.kecheng;importjava.util.Scanner;/**异常:异常是指在程序的运行过程中所发生的不正常的情况,它会中断正在运行的程序 异常处理机制:java中通过异常 ...

  6. java自定义一个数组类(封装多种方法)

    一.自定义数组类的动机 java给定的数组为静态的,我们是无法对齐进行灵活的操作,比如指定位置添加元素,删除元素,判断是否非空等,于是我们便需要利用"面向对象"的设计模式,自定义一 ...

  7. 自用自定义RuntimeException异常类

    //自定义异常类 public class MyException extends RuntimeException {//异常信息private String errMessage;public M ...

  8. java 自定义的异常类_java Exception 自定义异常类

    创建自定义的异常类需要继承自Exception类,并提供含有一个String类型形参的构造方法,该形参就是一场的描述信息,可以通过getMessage()方法获得.例如: public class N ...

  9. 可以用python自定义一个正多边形函数

    是的,可以使用 Python 自定义一个正多边形函数.您可以使用数学库如 Numpy 和 Matplotlib 来绘制多边形,也可以自己编写代码. 绘制正多边形的基本方法是:计算多边形的各个顶点的坐标 ...

最新文章

  1. 任正非:华为5G芯片用在iPhone上?我持开放态度
  2. IOS固定IP对动态IP用pre-share
  3. Go 语言编程 — 高级数据类型 — Map 集合
  4. Flutter入门:自定义dialog
  5. Django(part39)--制作图书管理系统
  6. 128位java_Java:如何使用CFB和无填充实现128位AES
  7. 20岁MM和25岁MM的区别(非原创,分享贴)
  8. 什么情况导致全表扫描,而不是用索引 收藏
  9. 微海鼠标自动点击器 支持录制和循环播放
  10. javascript 内置对象学习 笔记:
  11. 在springboot中一些框架和插件的配置
  12. STM32压力传感器信号采集-24位AD HX720 HX711 CS5530 CS5532 C#上位机
  13. 逆波兰表达式 c++
  14. 解决VScode输入 英文感叹号+tab键 无法自动生成HTML模板
  15. matlab保存pgm图形,matlab读写pgm文件
  16. Tangent Element调色台的设计和功能同等重要
  17. Scanner的.next()以及.nextLine()各自代表什么意思
  18. 巧用Scrum与Kanban
  19. Ubuntu18.04下 LOAM_Velodyne 的编译安装(PCL为1.8.1)
  20. 英语计算机自我介绍范文面试,计算机面试英文自我介绍范例

热门文章

  1. 基于区块链的供应链金融创新
  2. BackTrack5 Note01
  3. 宝塔面板ssh安装mysql_centos安装BT宝塔面板
  4. 求最小公倍数(华为机试,Go)
  5. 免费的网络学习工具【eNSP】
  6. 2021年高考成绩查询达州,四川省达州市2021年普通高校招生网上报名入口
  7. dw中html文档命名标准,dw中的css是什么意思?
  8. 自编码器(Auto-encoder)的概念和应用
  9. IDEA小技巧之痛苦面具 主菜单不见了怎么办?
  10. 一文读懂设计模式--策略模式