从一个小案例通俗解释Python中try...except...else...finally异常捕获的过程和注意事项

一、语法

    try:
        # 尝试执行的代码
        pass
    except 错误类型1:  # 下面几句是排除常见的异常,并进行提示等处理
        # 针对错误类型1,对应的代码处理
        pass
    except 错误类型2:
        # 针对错误类型2,对应的代码处理
        pass
    except (错误类型3, 错误类型4):  
        # 针对错误类型3 和 4,对应的代码处理
        pass
    ...
    ...
    except Exception as result:  # 编程中很难一次排除所有的错误,所有用这个语句,其中result是一个变量。这里相当于一个篮子,装了其他所有错误类型
        # 打印错误信息
        print("未知类型错误:%s" % result)
    else:
        # 没有异常才会执行的代码,作为奖励执行的代码
        pass
    finally:
        # 无论是否有异常,都会执行的代码
        print("无论是否有异常,都会执行的代码")

注:异常捕获的作用是为了将程序执行过程中出现的bug返回给专业的程序员查看,同时保证整个程序的正常运行,而不会因为bug而终止后续的代码。

二、下面是一个实例:

try:
    print(8/int(input("请输入一个非零整数:")))
except ZeroDivisionError:
    print("除数不能为0")
except ValueError:
    print("请重新输入")
except Exception as reason:
    print("未知类型错误:" % reason)
else:
    print("你真棒,一次就获得正确的结果")
finally:
    print("不管结果如何,你做了就是好孩纸")
    print("如果你喜欢这段代码,请给我点赞哟,么么哒")

三、实际开发过程中,如何应用:

补充概念: 1.异常的传递:当 函数/方法 执行 出现异常,会 将异常传递 给 函数/方法 的 调用一方;2.如果 传递到主程序,仍然
没有异常处理,程序才会被终止

**

所以:

**

在开发中,在主函数中增加 异常捕获; 而在主函数中调用的其他函数,只要出现异常,都会传递到主函数的 异常捕获 中 这样就不需要在代码中,增加大量的 异常捕获,能够保证代码的整洁 经常放在 main 中

posted @ 2018-06-08 21:48  defaulttest  阅读(382)  评论(0编辑  收藏  举报