6 python try…except语句处理异常

try…except语句的基本语法

try:
    <语句>
except [<异常的名称>[,<异常类的实例变量名称>]]:
    <异常处理语句>

语法的工作原理如下

  • 执行try子句,在关键字try和关键字except之间的语句。
  • 如果没有发生异常,忽略except子句,try子句执行后结束。
  • 如果在执行try子句发生异常,则try子句下面的程序会停止执行。
  • 如果异常的类型和except之后的名称相符,则对应的except子句执行。
  • 如果一个异常没有与任何except匹配,则程序停留在异常处。

情况一:没有发生异常

# 没有异常的情况
try:
    one = 1111/1111
    print(one)
except ZeroDivisionError as e:
    print("发生了异常,数值不可以除零")

允许结果:

1.0

情况二:发生异常,异常被处理

# 执行try子句发生了异常,try下面的程序不会允许
try:
    one = 1111/0
    print(one)
except ZeroDivisionError as e:
    print("发生了异常,数值不可以除零")

允许结果

发生了异常,数值不可以除零

情况三:异常没有被处理

# 异常没有被处理
try:
    one = 1111/0
    print(one)
except TypeError as e:
    print("发生了异常,类型错误")

运行结果,traceback跟踪了错误

Traceback (most recent call last):
  File "/Users/chenjihong/PycharmProjects/test/test.py", line 2, in <module>
    one = 1111/0
ZeroDivisionError: division by zero

情况四:定义了多种类型处理,发生的异常与其中一种进行匹配,成功被处理

try:
    one = 1111/0
    print(one)
except TypeError as e:
    print("发生了异常,类型错误")
except ZeroDivisionError as f:
    print("发生了异常,数值不可以除零")

允许结果

发生了异常,数值不可以除零

情况五:定义了多种类型捕捉,都是用同一种处理方式

try:
    one = 1111/0
    print(one)
except (TypeError,ZeroDivisionError):
    print("发生了异常")

运算结果

发生了异常

情况六:捕捉全部异常,但是不定义具体捕捉的类型

try:
    one = 1111/0
    print(one)
except:
    print("发生了异常")

运行结果

发生了异常
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值