0
点赞
收藏
分享

微信扫一扫

python基础——异常处理

非衣所思 2022-04-13 阅读 52
python

异常处理

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 条评论