day 21 03 补全异常处理

day 21 03  异常处理(补全)

1.异常处理的整体几个语句:

try:
    .......#有可能出错的代码
    ret=int(input('number >>>'))
    print(ret*'*')
except ValueError:
    print('您输入的内容错误,请输入一个数字')
except KeyError:
    print('请输入正确的格式')
except Exception:
    print('你错了,老铁')
else:
    print('没有异常的时候执行else里面的代码')#当try里面的代码都执行成功,即没有异常的时候就会执行else里面的代码
finally:
    print('====')# 不管有没有异常,都会执行,finally后面的代码都可以继续执行

2.什么时候用finally

举一个例子:无论什么时候,打开一个文件,就会在操作结束后关闭文件,而当不知道操作过程有没有出错的时候就可以用finally了

def func():
    try:
        f=open('file','w')
        return True
    except:
        return False
    finally:
        print('执行finall了')
        f.close()#肯定是在最后面关闭文件是最好的,无论中间有没有错误,打开了文件,总是要关闭的
print(func())

运行结果:

执行finally了
True
#return肯定是执行了,但是在return的过程中,它先执行了finally里面的代码,后面才接收返回的值,然后结束有跳出函数

finally:不管代码是否异常都会执行

              finally和return相遇的时候依然会执行

              一般都是在函数里面做异常处理,不管是否异常去做一些收尾工作

3.当使用万能异常机制exception的时候可提示具体哪里错误

try:
    # .......#有可能出错的代码
    ret=int(input('number >>>'))
    print(ret*'*')
# except ValueError:
#     print('您输入的内容错误,请输入一个数字')
# except KeyError:
#     print('请输入正确的格式')
except Exception as error:  #这里加一个as语句,as+起一个名字
    print('你错了,老铁',error)  #打印的时候也要打印上面起的名字
#输入一个错误的a
number >>>a
你错了,老铁 invalid literal for int() with base 10: 'a'  #会有提示具体哪里出错了

猜你喜欢

转载自www.cnblogs.com/wxm422562/p/10822120.html