异常处理
try...except...
while True:
num1 = input("num1:")
num2 = input("num2:")
try:
num1 = int(num1)
num2 = int(num2)
result = num1 + num2
#按错误类型捕获
except ValueError as ex:
print(ex)
except Exception as ex:
print(ex)
#要放在最后执行
except Exception as ex:
print(ex) #执行内部__str__方法
完整代码流程:

主动触发异常:raise
try:
raise Exception("zhudong") #可以是其他细分错误, self.message = "zhudong"
print(1234)
except ......
. print(ex) #__str__, return self.message
.
.
断言:
assert 1==1 #True执行 False报错
p =object()
p.status = True
p.start() #应该先执行一个assert p.status == False
try...finally
假如你在都一个文件的时候,希望在无论异常发生与否的情况下都关闭文件,就可以使用finally块来完成。注意,在一个try块下,可以同时使用except从句和finally块。如果你要同时使用他们的话,需要把一个嵌入另外一个。
示例:
import time
try:
f = file("poem.txt")
while True:
line = f.readline()
if len(line) == 0:
break
time.sleep(2)
print(line)
finally:
f.close()
print("Cleaning up...closed the file")
在运行时,按Ctrl+c中断


浙公网安备 33010602011771号