码迷,mamicode.com
首页 > 编程语言 > 详细

python 异常处理

时间:2019-10-28 14:59:31      阅读:100      评论:0      收藏:0      [点我收藏+]

标签:NPU   一个   通过   代码   异常处理   运行时   不能   解释器   没有   

一、异常的概念&异常处理的目的

程序在运行时,如果 Pyhon解释器 遇到一个错误,会停止程序的执行,并且提示一些错误,这就是异常。

程序开发时,很难将所有的特殊情况都处理的面面俱到,通过异常捕获可以针对突发事情做集中的处理,从而保证程序的稳定性和健壮性

二、处理已捕获的异常

根据捕获的不同异常,分别对异常进行处理,如果异常不在except预期的异常范围类,则同样会抛出异常

while True:
    try:
        num = int(input("请输入数字:"))
        result = 10/num
        print(F"result结果为:{result}")
        break
    except ValueError:
        # 处理非int类型错误
        print("请输入整数")
    except ZeroDivisionError:
        # 处理除数为0的错误
        print("输入的数字不能为0")

输出结果:

请输入数字:a
请输入整数
请输入数字:0
输入的数字不能为0
请输入数字:10
result结果为:1.0

 三、捕获未知错误

在开发时,要预判到所有可能出现的错误,还是有一定难度的。如果希望程序无论出现任何错误,

都不会因为python解释器抛出异常而被终止,可以再增加一个捕获未知错误的except。

# 假如只捕获到ValueError
while True:
    try:
        num = int(input("请输入数字:"))
        result = 10/num
        print(F"result结果为:{result}")
        break
    except ValueError:
        # 处理非int类型错误
        print("请输入整数")
    except Exception as e:
        # 处理未知错误,防止解释器抛出异常而被终止运行
        print(F"未知错误:{e}")

输出结果:

请输入数字:a
请输入整数
请输入数字:0
未知错误:division by zero
请输入数字:1
result结果为:10.0

 四、异常捕获的完整语法

try:
    # 尝试执行的代码
    pass
except 错误类型1:
    # 针对错误类型1,对应的处理代码
    print("针对错误类型1,对应的处理代码")
except 错误类型2:
    # 针对错误类型2,对应的处理代码
    print("针对错误类型2,对应的处理代码")
except Exception as e:
    # 针对未知错误类型,对应的处理代码
    print(F"未知错误:{e}")
else:
    # 没有异常才会执行的代码
    print("没有异常才会执行的代码")
finally:
    # 无论是否有异常,都会执行的代码
    print("无论是否有异常,都会执行的代码")

 

python 异常处理

标签:NPU   一个   通过   代码   异常处理   运行时   不能   解释器   没有   

原文地址:https://www.cnblogs.com/testlearn/p/11751706.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!