Python基础-异常处理(except) | logging.DEBUG 

JerryXia 发表于 , 阅读 (0)

异常处理


完整形式

1
2
3
4
5
6
7
8
9
10
11
12
13
try:  
有异常语句...
except <name1>:
处理name1异常的语句
except <name2>:
处理name2异常的语句
.
.
.
else:
没有触发异常执行的语句
finally:
无论有没有异常都会执行的语句

实例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
try:
x = input("Enter the first number: ")
y = input("Enter the second number: ")
print x / y
except TypeError, e:
print "Type Error " + e.message
except ZeroDivisionError, e:
print "ZeroDivisionError " + e.message
else:
print "No Error"
finally:
print "Finish"


# 结果
#(输入5、0)
Enter the first number: 1
Enter the second number: 0
ZeroDivisionError integer division or modulo by zero
Finish

#(输入d)
Enter the first number: d
Name Error name 'd' is not defined
Finish
  • 当发生错误没有用try/except时,错误就会被传播到调用的函数中;如果调用函数中也没有捕获异常,这些异常就会传递到程序的最顶层
  • Python会从头到尾以及从左到右查看except子句,然后执行第一个相符的except下的语句
  • except和else语句只会执行其中的一个,try捕获到异常时会进入except处理异常,try没有捕获到异常会进入else执行相应代码
  • finally无论是否捕获到异常,都会去执行里面的语句;通常是将释放资源、关闭IO流等操作放在里面

except多种形式

上述例子中except后跟的是异常的名字,except语句还有很多种写法