---- ====== 基本语法 ====== 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会抛出异常并停止执行 断言长用于检测环境变量,约束等