【python】常见异常及try语句

来源:互联网 发布:辽宁大学法学院知乎 编辑:程序博客网 时间:2024/05/22 07:42

转自:http://bbs.fishc.com/forum.php?mod=viewthread&tid=45814&extra=page%3D1%26filter%3Dtypeid%26typeid%3D403


1、AssertionError  断言语句(assert)失败

2、AttributeRRrror 尝试访问位置的对象属性

3、IndexError  索引超出系列的范围

4、keyError  字典中查找一个不存在的关键字    注意:使用.get方法即使关键字不存在也不会报错即程序不会垮掉

5、NameError  尝试访问一个不存在的变量

6、OSError 操作系统产生的异常(例如打开一个不存在的文件 ,有很多子类)

5、SyntaxError  Python语法错误

6、TypeError 不同类型之间的无效操作


如何检测异常并且处理他们-try语句:任何出现在try语句中的异常都会except中列出的被错误检测出来,进行相应的操作

1、try-except

语句:

try:

检测范围(语句块)

except Exception[as reason可选]://如果错误是此类的话,执行

出现异常(Expection)后的处理代码

例如:

try:
    f=open('我为什么是一个文件.tex')
    print(f.read())
    f.close()
except OSError as reason:
    print('文件出错了\n错误的原因是:'+str(reason))

except TypeError as reason:
    print('类型出错了\n错误的原因是:'+str(reason))


>>> 
文件出错了
错误的原因是:[Errno 2] No such file or directory: '我为什么是一个文件.tex'
    

注意:try语句中如果出现异常,剩下的语句将不会被执行


2、try-except-finally

try:

检测范围(语句块)

except Exception[as reason可选]://如果错误是此类的话,执行

出现异常(Expection)后的处理代码

finally:

无论如何都会被执行的代码


raise语句:自己引发一个异常

>>> raise ZeroDivisionError
Traceback (most recent call last):
  File "<pyshell#25>", line 1, in <module>
    raise ZeroDivisionError
ZeroDivisionError
>>> raise ZeroDivisionError('除数为0的异常')
Traceback (most recent call last):
  File "<pyshell#26>", line 1, in <module>
    raise ZeroDivisionError('除数为0的异常')
ZeroDivisionError: 除数为0的异常



原创粉丝点击