python 异常处理(二)

来源:互联网 发布:js replaceall 转译 编辑:程序博客网 时间:2024/05/01 13:17

1.try/except/else

    try:

        <statements>

    except <name1>:

        <statements>

    except (name1,name2):                #捕获所列出的任何异常

        <statement>

    except <name> as name3:

         ...

    except:                        #捕获所有的异常

        ...

    else:                           #没有发生异常就运行

         ...

     except分句会捕获try代码块执行时所发生的任何异常。else子句只是在try代码块没有发生异常时执行,控制权会在整个try语句下继续

2.try/finally

    如果try语句没有发生异常,python会执行finally代码块,然后在整个try语句后继续执行下去;如果try语句发生了异

常,python依然会执行finally代码块,但是会把异常向上传递到较高的try语句或者顶层的异常处理器。程序不会再try语句后继续执行

3.混合try语句

   try--->exception--->else----->finally

4.raise

   rasie class

   raise instance

class MyExc(Exception): passtry:    raise MyExc("spam")except MyExc as X:    print X.args>>>('spam',)
不管如何指定异常,异常总是通过实例对象来识别。一旦一个异常有except捕获,它就死掉了

5.assert

   assert几乎都是用来收集用户定义的约束条件,而不是捕捉内在的程序设计错误

6.with/as

with open('text.txt') as myfile:       for line in myfile:            print line
无论with代码块是否引发异常,文件都会在with代码块执行完之后,自动关闭



0 0
原创粉丝点击