前言

在先前的一些章节里你已经执行了一些代码,你一定遇到了程序“崩溃”或因未解决的错误而终止的情况。你会看到“跟踪记录(traceback)”消息以及随后解释器向你提供的信息,包括错误的名称、原因和发生错误的行号。不管你是通过 Python 解释器执行还是标准的脚本执行,所有的错误都符合相似的格式,这提供了一个一致的错误接口。所有错误,无论是语意上的还是逻辑上的,都是由于和 Python 解释器不相容导致的,其后果就是引发异常。

我们来看几个异常的例子。

NameError

尝试访问一个未申明的变量

NameError 表示我们访问了一个没有初始化的变量。

在 Python 解释器的符号表没有找到那个那个被调用的变量。任何可访问的变量必须先定义才能使用,访问变量需要由解释器进行搜索,如果请求的名字没有在任何名称空间里找到,那么将会生成一个NameError 异常。

ZeroDivisionError

除数为零

任何数值被零除都会导致一个 ZeroDivisionError 异常。

SyntaxError

Python解释器语法错误

SyntaxError 代表Python代码中有一个不正确的结构,在它改正之前程序无法执行。

IndexError

请求的索引超出序列范围

IndexError 在你尝试使用一个超出范围的值索引序列时引发。

KeyError

请求一个不存在的字典关键字

映射对象,例如字典,是依靠关键字(key)访问数据值的。如果使用错误的或是不存在的键请求字典就会引发一个KeyError异常。

IOError

操作的文件不存在

类似尝试打开一个不存在的磁盘文件一类的操作会引发一个操作系统输入/输出(I/O)错误。任何类型的I/O错误都会引发IOError异常。

AttributeError

尝试访问未知的对象属性

在我们的例子中,我们在 myInst.bar 储存了一个值,也就是实例 mylnst 的 bar 属性。属性被定义后,我们可以使用熟悉的点/属性操作符访问它,但如果是没有定义属性,例如我们访问 foo 属性,将导致一个 AttributeError 异常。

最新文章

  1. [C++] C/C++结构体的区别
  2. 对已经add的文件不在跟踪
  3. css写法优化
  4. 转:Maven介绍(创建工程项目以及下载所需要的jar包)
  5. html5标签收集
  6. 贝塞尔曲线:原理、自定义贝塞尔曲线View、使用!!!
  7. EasyUI - Layout 布局控件
  8. 扣出的图片无法调整大小 photoshop mac版本
  9. E/MediaPlayer: Should have subtitle controller already set
  10. window 下生成NodeJs(v8.9.3) 的 VS2015 解决方案node.sln
  11. beta冲刺5
  12. HTTP协议中PUT和POST使用区别
  13. [LeetCode] 18. 四数之和
  14. java并发编程 | 锁详解:AQS,Lock,ReentrantLock,ReentrantReadWriteLock
  15. springboot websocket 一篇足够了
  16. Springboot打包支持第三方jar
  17. python中pip
  18. ElasticSearch 2 (12) - Shard数调优(ElasticSearch性能)
  19. Erlang ets -- something about cache continue
  20. 【BZOJ】4872: [Shoi2017]分手是祝愿 期望DP

热门文章

  1. Inoreader - 在线Rss阅读器
  2. 设计模式:command模式
  3. 题解 SP2713 【GSS4 - Can you answer these queries IV】
  4. 橘子origin游戏平台如何绑定登陆验证/二次验证码?
  5. Mybatis——Mapper解析
  6. 前端学习(十二):CSS排版
  7. paramiko上传文件到Linux
  8. ES数据库 常用 java api
  9. 动态页面技术(EL/JSTL)
  10. 《精通Python网络爬虫》|百度网盘免费下载|Python爬虫实战