1.基本结构
a.try-except
------------------
try:
try_suite
except Exception[,reason]:
except_suite
b.try-finally
c.try-except-finally
2.带有多个except的try语句
try:
try_suite
except Exception1[,reason1]:
suite_for_exception1
except Exception2[,reason2]:
suite_for_exception2
3.处理多个异常的except语句
一个except处理多个异常时,要将异常放在一个元组中
except (Exception1,Exception2)[,reason]:
suite_for_Exception1_and_Exception2
4.异常类的结构
5.异常参数
捕获异常时,当异常发生会自动产生一个异常类的实例,该实例保存了一些异常信息,通过打印异常或str(reason),查看异常信息
try:
try_suite
except Exception,e:
print e #print str(e)
6.else语句
当所有的try语句的内容执行成功后,才会去执行else语句,否则不执行
try:
float("abc")
except (ValueError,TypeError):
print "argument of float must be a number or numeric string"
else:
print "success"
7.finally语句
try-finally,
try-except-finally
try-except-else-finally,可以有多个except
try:
A
except MyException:
B
else:
C
finally:
D
8.raise主动抛出异常
raise Exception 抛出异常然后放在try-except中进行捕获
raise Exception,args:提供异常参数
raise string直接抛出字符串信息到屏幕
taise string:提供异常参数
一旦raise出异常,raise后面的语句将不会被执行
9.断言
assert expr[,args]------------assert 1==0,"One does not equal zero"
断言的内部实现:
def assert(expr,args=None):
if __debug__ and not qxpr:
raise AssertionError,args