8.1 什么是异常

8.2 按自己的方式出错

如何引发异常,以及创建自己的异常类型。

  8.2.1 raise语句

>>> raise Exception
Traceback (most recent call last):
File "<pyshell#130>", line 1, in <module>
raise Exception
Exception

  Exception:    所有异常的基类。

  AttributeError:属性引用或赋值失败时引发

  IOError: 打开不存在的文件(或其他情况)时引发。

  IndexError: 使用序列中不存在的索引时引发。

  KeyError: 使用映射中不存在的键的时候引发。

  NameError: 找不到名字(变量)时引发。

  SyntaxError: 代码语法错的时候引发。

  TypeError:

  ValueError:

  ZeroDivisionError: 除数为0引发。

  8.2.2 自定义异常类

  继承自Exception就可以。

  >>> class SomeCustomException(Exception)

8.3 捕获异常

如果想捕获异常,想做一些处理,可以用try/except

try:
x = input('Enter x')
y = input('Enter y')
print((int)x/(int)y)
except ZeroDivisionError:
print('The second umber can not be zero!')

捕获异常后,可以继续抛出异常,用raise

8.4 不止一个except子句

可以捕获多个异常

except XXX:

   xxxxx

except YYY:

  fafafa

8.5 用一个块捕获两个异常

  try:

...

except(XXX, YYY,...)

    ...

8.6 捕获对象

try:

  ...

excetpt (ZeroDivisionError, TypeError)  as e:       // 捕获到异常,然后打印出来

  ...

8.7 真正的全捕获

捕获所有异常:

except:            // 不声明异常类型,捕获所有异常

  ....

8.8 万事大吉

8.9 最后....

try:

  I/O

except NameError:

  XXX

else:

  XXXX

finally:

  XXXX

8.10 异常和函数

8.11 异常之禅

python学习(八) 异常的更多相关文章

  1. python学习笔记——异常

    转自 http://www.cnblogs.com/rubylouvre/archive/2011/06/22/2086644.html Python内建异常体系结构 BaseException +- ...

  2. Python学习 之 异常

    1.python中处理异常的方式 #coding:utf8 filename=raw_input("请输入你要操作的文件") try: f=open(filename) print ...

  3. Python学习7——异常

    编写程序时,通常能够区分正常和异常情况.为了处理这些异常,可在每个可能出现异常的地方都使用上条件语句,但这样大大降低了程序的可读性,那么怎么解决哪?Python提供强大的替代解决方案——异常处理机制. ...

  4. 从0开始的Python学习016异常

    简介 当你的程序不能正常运行的时候,Python会在控制台打印一段提醒,告诉你一个错误,这个错误就是异常. 错误 我在控制台写了一段无效的代码,将print()的括号去掉,在执行这条语句的时候,系统提 ...

  5. Python学习笔记异常

    在程序代码中,可能会有各种错误的情况出现,且产生错误的结果是后面的代码都无法执行,即使是一点无关紧要的错误,如图: 在这样的情况下,我们需要异常处理,对程序代码中的错误抛出异常信息,且不影响后面的代码 ...

  6. python学习(八)定制类和枚举

    `python`定制类主要是实现特定功能,通过在类中定义特定的函数完成特定的功能. class Student(object): def __init__(self, name): self.name ...

  7. python学习八皇后问题

    0 # -*- coding: utf-8 -*- 1 import random #冲突检查,在定义state时,采用state来标志每个皇后的位置,其中索引用来表示横坐标,基对应的值表示纵坐标,例 ...

  8. Python Tutorial 学习(八)--Errors and Exceptions

    Python Tutorial 学习(八)--Errors and Exceptions恢复 Errors and Exceptions 错误与异常 此前,我们还没有开始着眼于错误信息.不过如果你是一 ...

  9. 孤荷凌寒自学python第八十二天学习爬取图片2

    孤荷凌寒自学python第八十二天学习爬取图片2 (完整学习过程屏幕记录视频地址在文末) 今天在昨天基本尝试成功的基础上,继续完善了文字和图片的同时爬取并存放在word文档中. 一.我准备爬取一个有文 ...

  10. 孤荷凌寒自学python第八十一天学习爬取图片1

    孤荷凌寒自学python第八十一天学习爬取图片1 (完整学习过程屏幕记录视频地址在文末) 通过前面十天的学习,我已经基本了解了通过requests模块来与网站服务器进行交互的方法,也知道了Beauti ...

随机推荐

  1. d3.js学习笔记(五)——将数据结构化为D3.js可处理的

    目标 在这一章,你将会理解如何对数据进行结构化,来更好的使用D3.js. 我们将会回顾我们之前已经学习的,学习D3.js如何使用选集(selections),JavaScript对象基础,以及如何最优 ...

  2. Mac OS X下实现结束占用某特定端口的进程

    ---恢复内容开始--- 1.打开终端,使用如下命令: lsof -i:**** 以上命令中,****代表端口号,我们首先要知道哪个(或哪些)进程占用该端口,比如你可以运行 lsof -i:8000, ...

  3. C#学习历程(一)[基础概念]

    #小摘要 >> boolean和bool差不多是一个东西,但是bool是一个基本值的类型,boolean则是对象(java与javascript中有用). Bool是Boolean的别名. ...

  4. Struts2 用过滤器代替了 servlet ,???? 且不需要tomcat就可以直接做功能测试

    Struts2  用过滤器代替了 servlet ,????  且不需要tomcat就可以直接做功能测试

  5. WEB-INFO里面的jsp文件不能通过href 访问,而只能通过 servlet访问

    href="<%=basePath %>index.jsp"> 这种确实 可以在jsp页面跳转至另一个页面,只不过要放在WEB-INFO外面,也就是项目根目录下面 ...

  6. Android 如何快速生成aar?

    aar主要分为两步 第一步 新建一个Module类似于Eclipse中的project 然后AddLibrary然后点击Finish完成 生成mylibrary-debug.aar文件 然后将.aar ...

  7. mac 电脑学习笔记 -

    新买了个mac mini,第一次用mac,有点linux基础,借此机会记录一下自己的学习过程. 1.个人设置文件 .profile export LS_OPTIONS='--color=auto' # ...

  8. 无法打开包括文件:“iostream.h”

    把#include<iostream.h>改为:#include<iostream>using namespace std; #include<iostream.h> ...

  9. python web开发配置

    安装python(最好是2.*版本) 安装easyinstall 参考Windows 下 Python easy_install 的安装 完成之后注意环境变量的配置 在系统环境变量的PATH中添加ea ...

  10. 关于public static void main(String[] args)相关知识

    main()方法是Java应用程序的入口方法,也就是说,程序在运行的时候,第一个执行的方法就是main()方法,这个方法和其他的方法有很大的不同.比如方法的名字必须是main,方法必须是public ...