Python3基础第七篇:异常处理

在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)
原文地址:https://www.cnblogs.com/chenruhai/p/12464257.html