python基础:异常简介

异常简介
异常是指在语法正确的前提下,程序运行时报错就是异常。
当Python脚本发生异常时我们需要捕获处理它,否则程序会终止执行。

异常举例:

print('程序开始了')
print(1/0)
print('程序结束了')

运行结果

  程序开始了
    Traceback (most recent call last):
      File "E:/homework/pythonworksplace/dey10/demon07-异常简介.py", line 9, in <module>
        print(1/0)
    ZeroDivisionError: division by zero

怎样能让程序发生异常时,不让程序停止,能正常运行呢?如下效果,就需要捕获异常。

while True:
    try:
        ret=eval(input('请输入计算公式:'))
        print(ret)
    except ZeroDivisionError:
        print('除数不能为0,请重新输入')

运行结果:

请输入计算公式:1+4
5
请输入计算公式:1/0
除数不能为0,请重新输入
请输入计算公式:

捕获异常
基本语法
try:
…代码1…
…代码2…
except 异常类型1:
…代码3…
except 异常类型2:
…代码4…
except 异常类型3:
…代码5…
注意:
如果发生的异常类型和捕获的异常类型不相同,还是不能捕获异常,程序还会结束。
try中一旦检测到异常,就执行这个位置的逻辑

except捕获多个异常
异常捕获流程: 依次捕获依次,直到捕获到对应的异常。

多分支结构:
try:
…代码1…
…代码2…
except 异常类型1:
…代码3…
except 异常类型2:
…代码4…
except 异常类型3:
…代码5…

try:
    print('程序开始了')
    print(1/0)
    print('啦啦啦啦')
    lst=[]
    print(lst[1])
    print('zzz')
except IndexError:
    print('索引越界')
except ZeroDivisionError:
    print('除数为0了...')
print('程序结束了')

运行结果:

程序开始了
除数为0了...
程序结束了

元组结构:
try:
…代码1…
…代码1…
…代码1…
expect(异常类型1,异常类型2,…)
…代码4…

try:
    print('程序开始了')
    print(1/0)
    print('啦啦啦啦')
    lst=[]
    print(lst[1])
    print('zzz')
except (IndexError,ZeroDivisionError):
    print('程序出错了...')

print('程序结束了')

运行结果:

程序开始了
程序出错了...
程序结束了

猜你喜欢

转载自blog.csdn.net/weixin_44239541/article/details/86029453