python学习(八) 异常,,8.1 什么是异常8


8.1 什么是异常

8.2 按自己的方式出错

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

  8.2.1 raise语句

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

  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学习(八) 异常

评论关闭