异常处理
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中断