笨鸟编程-零基础入门Pyhton教程

 找回密码
 立即注册

9.8. 异常也是类

发布者: 笨鸟自学网

用户自定义异常也可以是类。利用这个机制可以创建可扩展的异常体系。

以下是两种新的,有效的(语义上的)异常抛出形式,使用 raise 语句:

raise Class

raise Instance

第一种形式中,Class 必须是 type 或其派生类的一个实例。第二种形式是以下形式的简写:

raise Class()

发生的异常其类型如果是 except 子句中列出的类,或者是其派生类,那么它们就是相符的(反过来说--发生的异常其类型如果是异常子句中列出的类的基类,它们就不相符)。例如,以下代码会按顺序打印 B,C,D:

class B(Exception):
    pass
class C(B):
    pass
class D(C):
    pass

for cls in [B, C, D]:
    try:
        raise cls()
    except D:
        print("D")
    except C:
        print("C")
    except B:
        print("B")

要注意的是如果异常子句的顺序颠倒过来( execpt B 在最前),它就会打印 B,B,B--第一个匹配的异常被触发。

打印一个异常类的错误信息时,先打印类名,然后是一个空格、一个冒号,然后是用内置函数 str() 将类转换得到的完整字符串。

上一篇:9.7. 补充下一篇:9.9. 迭代器
Python3编程手册
  1. Python 入门指南

  2. 1. 开胃菜

  3. 2. 使用 Python 解释器

  4. 2.1. 调用 Python 解释器

  5. 2.2. 解释器及其环境

  6. 3. Python 简介

  7. 3.1. 将 Python 当做计算器

  8. 3.2. 编程的第一步

  9. 4. 深入 Python 流程控制

  10. 4.1. if 语句

  11. 4.2. for 语句

  12. 4.3. range() 函数

  13. 4.4. break 和 continue 语句

  14. 4.5. pass 语句

  15. 4.6. 定义函数

  16. 4.7. 深入 Python 函数定义

  17. 4.8. 插曲:编码风格

  18. 5. 数据结构

  19. 5.1. 关于列表更多的内容

  20. 5.2. del 语句

  21. 5.3. 元组和序列

  22. 5.4. 集合

  23. 5.5. 字典

  24. 5.6. 循环技巧

  25. 5.7. 深入条件控制

  26. 5.8. 比较序列和其它类型

  27. 6. 模块

  28. 6.1. 深入模块

  29. 6.1.1. 作为脚本来执行模块

  30. 6.1.2. 模块的搜索路径

  31. 6.1.3. “编译的” Python 文件

  32. 6.2. 标准模块

  33. 6.3. dir() 函数

  34. 6.4. 包

  35. 7. 输入和输出

  36. 7.1. 格式化输出

  37. 7.2. 文件读写

  38. 8. 错误和异常

  39. 8.1. 语法错误

  40. 8.2. 异常

  41. 8.3. 异常处理

  42. 8.4. 抛出异常

  43. 8.5. 用户自定义异常

  44. 8.6. 定义清理行为

  45. 8.7. 预定义清理行为

  46. 9. 类

  47. 9.1. 术语相关

  48. 9.2. Python 作用域和命名空间

  49. 9.2.1. 作用域和命名空间示例

  50. 9.3. 初识类

  51. 9.4. 一些说明

  52. 9.5. 继承

  53. 9.6. 私有变量

  54. 9.7. 补充

  55. 9.8. 异常也是类

  56. 9.9. 迭代器

  57. 9.10. 生成器

  58. 9.11. 生成器表达式

  59. 10. Python 标准库概览

  60. 10.1. 操作系统接口

  61. 10.2. 文件通配符

  62. 10.3. 命令行参数

  63. 10.4. 错误输出重定向和程序终止

  64. 10.5. 字符串正则匹配

  65. 10.6. 数学

  66. 10.7. 互联网访问

  67. 10.8. 日期和时间

  68. 10.9. 数据压缩

  69. 10.10. 性能度量

  70. 10.11. 质量控制

  71. 10.12. “瑞士军刀”

  72. 11. 标准库浏览

  73. 11.1. 输出格式

  74. 11.2. 模板

  75. 11.3. 使用二进制数据记录布局

  76. 11.4. 多线程

  77. 11.5. 日志

  78. 11.6. 弱引用

  79. 11.7. 列表工具

  80. 11.8. 十进制浮点数算法

  81. 12. 虚拟环境和包

  82. 12.1. 简介

  83. 12.2. 创建虚拟环境

  84. 12.3. 使用 pip 管理包

Archiver|手机版|笨鸟自学网 ( 粤ICP备20019910号 )

GMT+8, 2024-7-27 18:31 , Processed in 0.021086 second(s), 17 queries .

© 2001-2020

返回顶部