在Python里面可以使用try/except/finally语句来捕捉程序运行时产生的例外!
try语句块用来包含可能产生异常的代码块,若是产生异常则try块内的内容不执行,except块里的代码开始执行。若try块一切正常,则不执行except块里代码。但最终,不管try正常与否,finally块的内容都会无条件的执行。
try: print(7/0) except ZeroDivisionError: print("error by zero") finally: print("this code will run")
当然,与if-elif-else类似,使用try语句可以拥有多个except定义语句来处理异常,而多个异常也可以使用一个except块来捕捉。
try: maybey = 8 print(maybey/2) print (maybey+'i can') except ZeroDivisionError: print("Divided by zero") except(ValueError,TypeError): print('error') finally: print("this code will not run")
值得注意的是,当except中没有声明要捕捉的意外,它将捕捉所有的意外。但是,这种方式会把编程错误隐藏,但一般在处理用户输入的时候使用。
try: num01 = input("请输入01的值:") num02 = input("请输入02的值:") print(float(num01)/int(num02)) except: print("Invalid input")
认识finally。
两个例子:
第一个:
try: print(1) except: print(2) finally: print(3)
第二个:
try: print(1/0) except: print(2) finally: print(3)
异常也可以自己声明异常名称。
try: print(1/0) except ZeroDivisionError: raise ValueError("分母为0,语法错误") finally: print(3)
也可以不用声明异常的名称就可以重新抛出捕捉到的异常。
try: print(1/0) except ZeroDivisionError: #print("分母为0,语法错误") raise finally: print(3)