异常捕获和处理

本文介绍了异常处理的概念,包括错误与异常的区别,以及如何通过try-except结构捕获并处理异常。强调了不要滥用异常捕获,并给出了不同类型的异常捕获结构示例,包括捕获所有异常、指定异常以及同时捕获多种异常的情况。通过实例展示了如何在用户输入错误时优雅地处理异常,提高程序的健壮性。
摘要由CSDN通过智能技术生成

异常捕获

1.异常
异常就是错误。
执行程序的过程中,如果出现异常,会中断程序的执行()
exit() - 这个表示提前结束程序,也算时正常结
2.异常捕获 - 让程序在出现异常的时候,不崩溃,还可以接着往后执行
注意:不要滥用异常捕获。如果是因为使用者使用不当导致程序出现异常,又希望在出现异常的时候可以继续执行,才使用异常捕获。
结构1: - 捕获所有异常

try:
需要捕获异常的代码段1(代码1)
需要捕获的异常的代码段2
except:
捕获到异常需要执行的代码块(代码2)

执行过程:先执行代码1,如果出现异常直接马上执行代码2;如果没有出现异常,就不执行代码2
如果需要捕获异常的代码段1中出现异常,将不会判断需要捕获的异常的代码段2,直接马上执行捕获到异常需要执行的代码块

结构2: - 捕获指定异常

try:
需要捕获异常的代码段1(代码1)
需要捕获的异常的代码段2
except 异常类型:
捕获到异常需要执行的代码块(代码2)

结构3: - 同时捕获多种异常

try:
需要捕获异常的代码段1(代码1)
需要捕获的异常的代码段2
except (异常类型1,异常类型2…):
捕获到异常需要执行的代码块(代码2)

结构4:

try:
需要捕获异常的代码段1(代码1)
需要捕获的异常的代码段2
except 异常类型1:
捕获到异常需要执行的代码块1(代码2)
except 异常类型2:
捕获到异常需要执行的代码块2

try:
    print('abc'[4])
except:
    print('捕获到异常')
print('===')

try:
    age = int(input('请输入年龄:'))
    if age >= 18:
        print('成年')
except:
    print('年龄输入有误')
注意:如果知道异常类型,尽量把异常类型加入进去。因为这样可以避免很多错误比如下面的例子
try:
    age = int(input('请输入年龄:'))        # ValueError
    if age >= '18':
        print('成年!')
    else:
        print('未成年!')
except:
    print('年龄输入有误!')
这个问题明显是程序员自身书写代码出现了错误,所有此时就算输入对了也会异常,因为数字类型和字符串类型无法比较,也是一个异常,导致会就算输入正确的数字,因为异常,也只能会输入except后面的代码段
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值