python对异常_关于python中的异常

1. try....except(except1,except2),可以捕获多个异常,如果都未捕获到,则程序终止

try:

a=[1,2,3]

print(a[4])

except(IndexError, ZeroDivisionError):

print('发生了错误')

print('1111')

2.普通异常的捕获:

a=input('请输入整数:')

try:

a= int(a)

print(a**2)

except Exception as e:

print(e)

print(1111)

测试输入非整数:

f57e207134ee58de0ce75693efba3d28.png

3.处理异常时,打印堆栈信息,需要引入traceback包

import traceback

# 打印堆栈

a = input("请输入整数")

try:

a = int(a)

print(a ** 2)

except Exception as e:

# 引入traceback,程序不会退出

traceback.print_exc()

print('1111111')

0a9a87d4fa783d11936a3d443337c4c0.png

4.try...except...finally:

<1>.try里面发生了异常,except捕获到了,finally会执行

import traceback

a = input("请输入整数")

try:

a = int(a)

print(a ** 2)

except Exception as e:

# 引入traceback,程序不会退出

traceback.print_exc()

finally:

print('finally')

3fdee7282e258f898c1646ac27ec98aa.png

<2>.try里面没有发生异常,finally也会执行:

还是上面的代码,测试未发生异常的示例:

169c805d6fae61d4485d39e6c7f9f57d.png

<3>.try里面发生了异常,except没有捕获到,finnally也会执行

import traceback

# 打印堆栈

a = input("请输入整数")

try:

a = int(a)

print(a ** 2)

except ZeroDivisionError as e:

# 引入traceback,程序不会退出

traceback.print_exc()

finally:

print('finally')

`   上面的示例,except捕获的异常不对,此时finally也会执行

6cac8c8cb0098b80c9e2a4e1ed5963f2.png

如果将finally去掉,改成print(),则print不会执行:

import traceback

a = input("请输入整数")

try:

a = int(a)

print(a ** 2)

except ZeroDivisionError as e:

# 引入traceback,程序不会退出

traceback.print_exc()

print('finally')

b775ca7d6887fd4915bf1d26b5d11ef9.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值