Python使用被称为异常的特殊对象来管理程序执行期间发生的错误。每当发生让Python不知所措的错误时,它都会创建一个异常对象。如果你编写了处理该异常的代码,程序将继续运行;如果你未对异常进行处理,程序将停止,并显示一个traceback,其中包含有关异常的报告。

异常是使用try-except代码块处理的。try-except代码块让Python执行指定的操作,同时告诉Python发生异常时怎么办。使用了try-except代码块时,即便出现异常,程序也将继续运行:显示你编写的友好的错误消息,而不是抛出原始错误traceback信息。

下面举个例子:

在division.py中写入下面代码:

print(5/0)

意思就是把5除以0的结果打印出来,但是我们都知道0是不能作为除数的,所以这个肯定是会报错的。

执行结果如下:

 Traceback (most recent call last):
File "division.py", line 1, in <module>
print(5/0)
ZeroDivisionError: division by zero

返回了一个Traceback信息,在文件"division.py"的第1行有一个异常,异常对象为ZeroDivisionError,异常原因是:division by zero,并且停止运行程序。

这显然不是我们所希望的。

当你认为可能发生了错误时,可编写一个try-except代码块来处理可能引发的异常。你让Python尝试运行一些代码,并告诉它如果这些代码引发了指定的异常,该怎么办。

从上面的异常信息中,我们知道了是异常对象类型为ZeroDivisionError,要处理这类异常的try-except代码块可以这样写:

 try:
print(5/0)
except ZeroDivisionError:
print("除数不能为0")

将引起异常的代码print(5/0)放在try中运行,如果try代码块中的代码运行起来没有问题,Python将跳过except代码块;如果try代码块中的代码导致了错误,Python将查找这样的except代码块,并运行其中的代码,即其中指定的错误与引发的错误相同。

在这个示例中,try代码块中的代码引发了ZeroDivisionError异常,因此Python指出了该如何解决问题的except代码块,并运行其中的代码。这样,用户看到的是一条友好的错误消息,而不是traceback:

 除数不能为0

最新文章

  1. 关于学习angularJS 的一些心得
  2. Mac下搭建php开发环境【转】
  3. webstorm 代码自动换行
  4. Git工作流指南:Pull Request工作流
  5. 重新想象 Windows 8 Store Apps (55) - 绑定: MVVM 模式
  6. 一位ACM过来人的心得(转)
  7. SAP BW中的增强(转)
  8. mirantis fuel 学习
  9. 列表框List Box
  10. samba后台进程及安全模式简介
  11. java线程池的原理及实现
  12. Findbug在项目中的运用--提高代码质量
  13. 推荐几个牛逼的 IDEA 插件,还带动图!
  14. RAID磁盘阵列是什么(一看就懂)
  15. 文件上传时出现 Processing of multipart/form-data request failed. Unexpected EOF read on the socket错误
  16. Html5 手机端网页
  17. centos 7 linux x64
  18. Spring中bean作用域属性scope
  19. redis教程(The little redis book中文版)
  20. eclipse导入maven-jeecg项目

热门文章

  1. static、const、extern等关键字
  2. 初识v4l2(五)-------v4l2_ioctl浅析
  3. c# 第三节 vs的安装
  4. 201871010106-丁宣元 《面向对象程序设计(java)》第十四周学习总结
  5. 201871010135 张玉晶《面向对象程序设计(java)》第十四周学习总结
  6. 青春正盛,未来可期。马上2020了,低成本投资自己:vip测试提升圈
  7. Linux查看网卡传输速率总结
  8. Codeforces Round #607 (Div. 2) 题解
  9. Flask-SQLAlchemy相关与Flask-Migrate相关
  10. 洛谷 P1440 求m区间内的最小值