day 21 03 补全异常处理

博客主要介绍异常处理相关内容,包括异常处理的整体语句,说明了finally语句的使用场景,如操作文件时无论有无出错都可在操作结束后用finally关闭文件,还提到finally不管代码是否异常都会执行,与return相遇时也会执行,使用万能异常机制可提示具体错误位置。

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'  #会有提示具体哪里出错了

 

转载于:https://www.cnblogs.com/wxm422562/p/10822120.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值