首页 Python基础入门视频教程 异常处理-try和except捕捉异常
pay pay

异常处理-try和except捕捉异常

日期: 2021年11月21日 01:05
阅读: 267
作者: Python自学网

摘要: 异常处理-try和except捕捉异常

'''这种语句类似于我们之前学习的多分支判断语句
try:
    # 有可能出现异常的代码
except NameError as ze:  # 这里可以加入形参,返回异常描述
    # 出现上述异常时的解决方法,可以写多个except代码块,但是只会出现一个结果
except TypeError as ne:
    # 出现上述异常时的解决方法,可以写多个except代码块,但是只会出现一个结果
except (NameError, TypeError):  # 可以通过元祖合并处理异常
    # 出现上述异常时的解决方法,可以写多个except代码块,但是只会出现一个结果
except Exception:  # 可以直接写一个总的异常类来解决不确定的错误
    # 出现上述异常时的解决方法,可以写多个except代码块,但是只会出现一个结果
else:
    # 走另一个分支,一般是上面异常均未捕获的情况下才走else
finally:
    # 无论如何都会执行的代码
'''
age = 18
try:
    print(age)
except NameError:
    print('变量名未定义')
else:
    print('未捕获到任何异常')
finally:
    print('+++++++++++')
# 异常的捕获是阻断的,一旦发现异常直接抛出第一个异常,后面代码出现异常不会被抛出
int1 = input('请输入一个数字:')
try:
    # print(age)  # 错误一
    # 1 / 0  # 错误二
    # lis = iter([1, 2, 3])  # 错误三
    # print(next(lis))
    # print(next(lis))
    # print(next(lis))
    # print(next(lis))
    print(int1 + 10)  # 错误四
except NameError:
    print('变量名未定义')
except ZeroDivisionError as zde:  # 定义异常名称
    print('除零错误', zde)  # 除零错误 division by zero
except (StopIteration, TypeError):  # 同时抛出两个异常,但是并不是表示检测到两个异常,注释迭代器之后还会返回一样的结果
    print('迭代错误,类型错误')
except Exception:  # Exception是上面异常的父类
    print('异常不确定')
else:
    print('未捕获到任何异常')
finally:
    print('+++++++++++')

 

部分文字内容为Python自学网原创作品,转载请注明出处!视频内容已申请版权,切勿转载!
回顶部