码迷,mamicode.com
首页 > 编程语言 > 详细

python的异常处理

时间:2018-05-27 23:41:52      阅读:263      评论:0      收藏:0      [点我收藏+]

标签:序列   定义   垃圾回收   导入模块   sage   keyboard   oca   导入   name   

try...except

有时候我们写程序的时候,会出现一些错误或异常,导致程序终止。例如,做除法时,除法为0,会引发一个
ZeroDivisionError

a=10
b=0
try:
c=a/b
print c

except ZeroDivisionError ,e:
print e.message

print "done"

我们把可能发生错误的语句放在try模块里,用except来处理异常。except可以处理一个专门的异常,也可以处理一组圆括号中的异常,如果except后
没有指定异常,则默认处理所有的异常。每一个try,都必须至少有一个except

处理一组异常可以这样写(其中e代表异常的实例):

try:
pass

except (IOError, ZeroDivisionError) ,e:
print e

try ......except....else 语句,当没有异常发生时,else中的语句将会被执行。

例子:

a = 10

b = 0

try:
c = b/a/b
print c

except (IOError , ZeroDivisionError),x:
print x

else:

print ("no error")

print "done"


二、raise 引发一个异常
例子:如果输入的数据不是整数,则引发一个ValueError

inputValue = input("please input a int data:")

if type(inputValue)!=type(1)
raise ValueError

else:
print (inputValue)


三、try。。。finally

无论异常是否发生,在程序结束前,finally中的语句都会被执行

a = 10
b =0

try:
print a/b

except:
print "error"

finally:
print "always excute"


四、自定义一个异常类


这个自定义

五、python所有的标准异常类:

异常名称

描述

BaseException (所有异常的基类(父类))

SystemExit (解释器请求退出)

KeyboardInterrupt (用户中断执行(通常是输入^c))

Exception (常规错误的基类)

Stoplteration (迭代器没有更多的值)

GeneratorExit (生成器(generator)发生异常来通知退出)

SystemExit (python解释器请求退出)

StandardError (所有的内建标准异常的基类)

ArithemticError (所有数值计算错误的基类)

FloatingPointError (浮点计算错误)

OverflowError (数值运算超出最大限制)

ZeroDivisionError 除(或取模)零(所有数据类型)

AssertionError (断言语句失败)

AttributeError(对象没有这个属性)

EoFError (没有内建输入,到达EoF标记)

EnvironmentError (操作系统错误的基类)

IOError (输入/输出操作失败)

OSError (操作系统错误)

windowsError (系统调用失败)

ImportError (导入模块/对象失败)

LookupError (无效数据查询的基类)

IndexError (序列中没有此索引(index))

KeyError (映射中没有这个建)

MemoryError (内存溢出错误(对于python解释器不是致命的))

NameError (未声明/初始化对象(没有属性))

UnboundLocalError (访问未初始化的本地变量)

ReferenceError (弱引用(weak reference)试图访问已经垃圾回收了的对象)

RuntimeError (一般的运行时错误)

SyntaxError (python 语法错误)

TypeError (对类型无效的操作)

ValueError (传入无效的参数)

SyntaxWarning (可疑的语法的警告)

python的异常处理

标签:序列   定义   垃圾回收   导入模块   sage   keyboard   oca   导入   name   

原文地址:https://www.cnblogs.com/wuheng-123/p/9097879.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!