Python 教程阅读笔记(七):错误和异常

有两种错误:语法错误和异常

在执行时发现的错误称为异常,并不是无条件致命的

处理异常:

try:

clause1

except  Reason:

clause2

else :

clause 3

首先在try和except之间的语句执行,如果没有异常发生,except语句被略过。如果发生异常,剩下的语句将跳过。如果类型与except后的关键字有匹配的,则执行相应语句,然后再接着执行try后面的语句,如果没有匹配的,将传递到try语句的外层,如果仍无法处理,则为未处理异常。

一个 except 中可以包含多个 异常。也可以有多个异常语句。最后一个except可以不包含异常名,而作为一个通配项。

异常语句可以在异常名后面指定变量。变量属于异常实例,参数存在instance.args中。方便起见,异常定义了__str__()这样参数就可直接被打印而不需要引用.args。可以在抛出异常前实例化异常,增加任何想要的属性。

raise语句用来强制抛出指定异常,如果想抛出异常而不处理,可直接使用raise

用户自定义异常:通过创建新的异常类来命名自己的异常。异常通常是由Exception类直接或间接的导出的。异常类可以做其他任何类相同的事,但通常只提供一个属性,允许错误信息在异常时被对应的处理子抽取。__init__()   __str__()

try:

clause

finally:

clause

finally语句用来在将要离开try语句前执行,不管异常是否发生。当异常发生时,且没有被处理时,将在finally执行完后重新被抛出。 任何其他的语句导致退出try语句如break,continue,return都会执行finally语句。 finally一般用于释放资源

预定义的清除动作需要使用with语句,with语句保证像文件一样的对象能够被合理并正确的被清除

原文地址:https://www.cnblogs.com/westwind/p/2505475.html