zoukankan      html  css  js  c++  java
  • Python异常

    异常引发或会被传递给异常处理器,当前没有找到异常处理器,就会向上找直到找到为止,找到最顶层还是没找着的时候就会出错。

    异常可以通过try语句来检测,任何在try语句块里的代码都会被监测,检查有无异常发生。

    一、try-except

    try:

       try_suite   #监控这里的异常

    except Exception[,reason]:          #reason作为代码异常的诊断信息,作为一个错误类的实例,通常用e表示

       except_suit   #异常处理代码

    -----------------

    try:

       f=open('blah','r')

    except IOError,e:    #IOError一般为打开文件输入输出错误。若没有遇到错误,则解释器会忽略except语句继续执行

       print 'could not open file:',e      #一旦遇到IOError和e之后的处理方式,try下面的没有执行的剩余语句将被忽略

    这里的语句只能处理IOError类型的错误,其他类型的不会处理,当遇到这个错误时,就会马上转向处理器中的代码,若找不到处理器那么异常就会向上移交给调用者,一直向上直到找到对应的处理器,否则就会报错

    try:

       xxx

    except (ValueError,TypeError):   #所有异常类型可以放在一个元祖里,进行统一处理

       xxx

    --------------------------

    try:

      xxxx

    except ValueError:

       xxx

    except TypeError:

       xxx

    -----------------

    try:

       xxx

    except Exception,e:      #Exception是错误类里最顶层的类,其他例如TypeError等错误都是顶层之下的,所有Exception可以代表绝大多数错误类型,e属于错误日志

       xxx

    --------------

    二、try-finally

    当在try范围中产生一个异常时,会立即跳转到finally语句块,当finally中的所有代码都执行完毕后,会继续想上一层引发异常。

    三、try-except-finally

    try: 

       A

    except MyException:B

    else: C

    finally:D

    程序执行ACD或ABD

    四、try-except-else

    在try中的语句全部执行完后,没有引发异常,而走else语句

    ----------------------------------------------

    try:

       try_suite

    except Exception1:

       suite

    except(Exception2,exception3):

       suite

    except Exception5,argument5:

       suite

    except (Exception6,Exception7),argument67:

       suite

    except:

       suite

    finally:

       suite

    with语句

    with context_expr[as var]:

       with_suite

    with open('/etc/passwd','r') as f:

       for eachLine in f:

          #do sutff with eachline or f...

    raise语句

    raise [someException[,args[,traceback]]]

    SomeException是触发异常的名字,它必须是一个字符串,类或实例。

    args是参数、值,用来传给异常,通常是元祖形式

    traceback追踪对象,如果没有就填写None

  • 相关阅读:
    Eclipse中显示行号
    PeerSim中一些自己的理解
    迄今为止看过的书籍
    Java程序跨平台运行
    Linux下在PeerSim中运行Chord源代码
    在Eclipse中运行PeerSim的例子
    Ubuntu下安装Java
    Eclipse中自动调整代码
    Eclipse中Outline里各种图标的含义
    Java是如何运行的
  • 原文地址:https://www.cnblogs.com/zz27zz/p/7866403.html
Copyright © 2011-2022 走看看