zoukankan      html  css  js  c++  java
  • python中的try...except...finally函数

    异常Error

    我们在写代码的时候,经常会遇见程序抛出Error无法执行的情况

    一般情况下,在Python无法正常处理程序时就会发生一个异常。异常是Python对象,表示一个错误。当Python脚本发生异常时我们需要捕获处理它,否则程序会终止执行。

    try...except...else

    try:
        正常的操作
       ......................
    except:
        发生异常,执行这块代码
       ......................
    else:
        如果没有异常执行这块代码

    except后可写入一个固定的错误名称  如写 except IOError  并且我们可以写多个except语句

    try...except...finally

    我们还可以使用try...except...finally...的错误处理机制   

    try...except...finally...与try...except...else区别是  无论有没有错误 finally语句都会执行

    例如:

    try:
        print('try...')
        r = 10 / 0
        print('result:', r)
    except ZeroDivisionError as e:
        print('except:', e)
    finally:
        print('finally...')
    print('END')

    当我们认为某些代码可能会出错时,就可以用try来运行这段代码,如果执行出错,则后续代码不会继续执行,而是直接跳转至错误处理代码,即except语句块,执行except语句块,如果有finally语句块,也会执行finally语句块,

    即使捕捉到错误,仍然会执行finally语句块,可以认为finally语句块优先级高于except语句块。

    如下:

    def func1():
       try:
           return 1
       finally:
           return 2
    
    def func2():
       try:
           raise ValueError()
       except:
           return 1
       finally:
           return 3
    
    print(func1())
    print(func2())

    程序打印结果是 2和3 ,即使func2里有return 1 ,但是仍然执行return 3 ,实际应用中,并不推荐在finally中使用return返回。

  • 相关阅读:
    python的dict和set
    python基础之dict和set
    python基础之条件判断和循环
    mongodb安装和配置,遇到问题和解决方法
    mybatis12--一级缓存
    mybatis11--多对多关联查询
    mybatis10--自连接多对一查询
    mybatis09--自连接一对多查询
    mybatis08--关联查询多对一
    mybatis07--关联查询一对多
  • 原文地址:https://www.cnblogs.com/CYHISTW/p/10975011.html
Copyright © 2011-2022 走看看