python基础——异常处理

本文详细介绍了Python中的异常处理结构,包括try...except、try...except...else...、带有多个except的try...以及try...except...else...finally...结构,并通过具体的代码示例展示了如何捕获和处理不同类型的异常,如ZeroDivisionError和TypeError。
摘要由CSDN通过智能技术生成

try…except…结构

try:
    # 可能引发异常的代码块
except Exception:    #可能出现的异常
    #如果try中的代码不能正常执行,就会执行此处代码
def div(x, y):
    try:
        z = x / y
        return z
    except ZeroDivisionError:
        print('程序出现异常,异常类型为:除数为0')


print(div(5, 0)) #程序出现异常,异常类型为:除数为0
                # None

try…except…else…结构

try:
    # 可能引发异常的代码块
except Exception:    #可能出现的异常
    #针对上面的异常进行处理的代码块

else:   
    #如果没有引发异常,则在执行完try中的代码后会执行此处代码
def div(x, y):
    try:
        z = x / y
    except ZeroDivisionError:
        print('出现了以0为除数的异常')
        y = float(input('请输入一个非0的值'))
        z = x / y
        return z
    else:
        return z


print(div(5, 0))
# ----------------->
# 出现了以0为除数的异常
# 请输入一个非0的值2
# 2.5

带有多个except…的 try…结构

try:
    # 可能引发异常的代码块
except Exception1:  #可能出现的一种异常
    except块1        #针对上面的异常进行处理
except Exception2:  #可能出现的一种异常
    except块2        #针对上面的异常进行处理
else:                #可有可无
def div(x, y):
    try:
        z = x / y
    except ZeroDivisionError:
        print('出现了以0为除数的异常')
    except TypeError:
        print('被除数和除数应为数值类型')
    else:
        return z


print(div(5, 'b'))
# -------------------->
# 被除数和除数应为数值类型
# None

try…except…else…finally…结构

try:
    # 可能引发异常的代码块
except ZeroDivisionError:  # 这里也可以是多个 except
    # 用来处理异常的代码块
finally:
    # 无论异常是否发生,都会执行该代码块
def div(x, y):
    try:
        print(x / y)
    except ZeroDivisionError:
        print('除0错误!')
    except TypeError:
        print('类型错误!')
    except NameError:
        print('名字错误!')
    else:
        print('正确!')
    finally:
        print('执行finally语句块!')


div(1, 0)
# ----------->
# 除0错误!
# 执行finally语句块!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值