用户工具



基本语法

    try:
        raise  #抛出一个异常
        print "ok"
    except IOError,e  : #捕获io异常,e是异常实例
        print(e)
    except (IOError,ValueError),e  : #捕获io异常 或者 错误值异常,e是异常实例
        print(e)
    except:
        print ("Unexpected error") #捕获其他异常
    else: #没有异常发生时调用
        print "no Exception"
    finally:  # 总是会被调用
       print "finally,always running"

异常嵌套

def a():    
    try:
        b()
    except:
        print ("error,a")
    else:
        print "ok.a"
    finally:
       print "finally,a"

def b():    
    try:
        c()
    except:
        print ("error,b")
    else:
        print "ok,b"
    finally:
       print "finally,b"
def c():    
    raise Exception

a()


结果:
error,b #捕获错误b
finally,b  #执行finally
ok,a      #因为异常在b函数中已经处理,所以a函数中没有捕获到异常
finally,a  #处理函数a中的finally

用户定义异常

bad=‘error’  #自定义一个字符串异常
class bad(Excepotin):pass  #自定义一个类异常,继承Exception

try
    raise bad
catch bad:
    print "bae"

断言

语法:assert boolean , 'str'

a = 1 b = 2 assert a > b,'a is smaller than b'

作用:当boolean为假时,打印str。assert会抛出异常并停止执行

断言长用于检测环境变量,约束等