Python基础学习第九天,异常捕捉

64 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第9天,点击查看活动详情

异常捕捉介绍

在程序中经常会因为出现一些中间的错误而不能直接运行完就报错,为了避免这样的情况我们会使用异常捕捉异常的情况。

try···except···的基本用法

基本格式:
    try:
        代码段(正常运行的)
    except:
        代码段(出现异常时运行的)
ps:若无异常,那么except下的代码段并不会执行

举个例子:

for i in range(2):
    try:
        x = int(input("请输入分子:"))
        y = int(input("请输入分母:"))
        print(f"x ➗ y = {x/y}")
        print("====================")
    except:  
    # excpe: ==> except Exception as e:
    # 两者都是抓取所有的异常
        print("分母不可为零")

image.png

捕捉多个异常

举个例子

try:
    x = input("请输入分子:")
    y = int(input("请输入分母:"))
    print(f"x ➗ y = {x/y}")
except (ZeroDivisionError, TypeError) as e:
    print(e)
print("----------------------------------")
try:
    x = int(input("请输入分子:"))
    y = int(input("请输入分母:"))
    print(f"x ➗ y = {x/y}")
except (ZeroDivisionError, TypeError) as e:
    print(e)
print("==================================")
try:
    x = input("请输入分子:")
    y = int(input("请输入分母:"))
    print(f"x ➗ y = {x/y}")
except ZeroDivisionError as e:
    print("分母不可为零")
except TypeError as e:
    print(e)
print("----------------------------------")
try:
    x = int(input("请输入分子:"))
    y = int(input("请输入分母:"))
    print(f"x ➗ y = {x/y}")
except ZeroDivisionError as e:
    print("分母不可为零")
except TypeError as e:
    print(e)

image.png

try···except···else···finally 格式

基本格式:

try:
    代码段(一开始执行的)
except:
    代码段(出现异常执行的)
else:
    代码段(如果没有异常执行的)
finally:
    代码段(不管是否有异常都会执行的)

举个例子

for i in range(2):
    try:
        x = int(input("请输入分子:"))
        y = int(input("请输入分母:"))
        print(f"x ➗ y = {x/y}")
    except ZeroDivisionError as e:
        print("异常出现,分母不可为零")
    else:
        print("异常未出现")
    finally:
        print("最终段")
        print("====================")

image.png