学习python(五) 异常

来源:互联网 发布:淘宝客户端怎么看评价 编辑:程序博客网 时间:2024/05/29 14:45

python使用异常对象来表示异常情况。遇到异常后,会引发异常,如果异常对象未被处理或捕获,程序就会用回溯并终止执行。如果知道某段代码可能导致某种异常,如除零,又不希望终止,那么就根据需要添加try/except 或者try/finally进行处理。

虽然使用条件语句也能实现与异常处理同样的功能,但是条件语句可能在自然性和可读性上差些,所以尽量使用异常处理机制。(在做一件事时去处理可能出现的错误,而不是在开始做事前就进行大量的检查)

 

每个异常都是一些类的实例,常见的异常类有:

Exception            所有异常类的基类

AttributeError     特性引用或赋值失效导致

IOError               试图打开不存在的文件

IndexError          序列中索引越界

KeyError             使用映射中不存在的键

NameError          找不到名字或者变量

SyntaxError         语法错误

TypeError            类型错误

ValueError          值错误

ZeroDivisionError      除0错误

 

自定义异常类

class CustomException(Exception):pass

 

抛出异常

raise Exception(“some thing error.”)

 

捕获异常

使用try/except 语句

try:

    x = input("Enter the first number : ")

    y = input("Enter the second number : ")

    print x / y

except ZeroDivisionError:

    print “The Second number can't be zero!”

 

捕获多个异常

try:

    code

except ZeroDivisionError:

    print “The Second number can't be zero!”

except TypeError:

    print “That wasn't a number.”

另一种形式

except (ZeroDivisionError, TypeError, NameError):

     print “some thing wrong.”

捕捉所有异常

except:

    print “some thing wrong.”

或者

except Exception, e:

    print e

它可以让程序继续运行,并且能打印错误。

 

else语句,当没有异常发生时做某些动作

try:

    code

except:

    pass

else:

    pass

 

finally语句,用来在可能的异常后进行清理

try:

   code

finally:

   pass

不管try中是否发生异常,finally语句总会执行



0 0