python except exception_try except Exception 异常处理

上节课我们知道通过except 可以捕获异常,但是问题在于python的异常种类非常多,我们写了一篇满满当当的代码后也不知道他具体可能会抛哪些异常,只是靠一个个的except来手写可能的异常难免有点不现实!此时此刻,Exception就该登场了!

先看一个案例:

# -*- coding: utf-8 -*-

try:

dic = {'a':1}

lis = [0,0]

print(lis[0])

print(1)

print(dic['python66'])

except NameError as e:

print('出错!打印未定义变量',e)

except ZeroDivisionError as e:

print('出错!除以0',e)

except IndexError as e:

print('出错!列表索引异常',e)

except Exception as e:

print('未知异常',e)

0

1

未知异常 'python66'

从上面可以看出,Exception的特点在于他不需要指明某个具体的异常而是直接可以去处理异常,通常放到最后一个except部分。常规的错误都可以被Exception捕获。

官方文档说:所有内置的非系统退出类异常都派生Exception类,所有用户自定义异常也应当派生自Exception类。(类是面向对象的概念,此处可以暂时理解为类就像一个装有很多变量和函数的车间,这个车间的东西可以拿来用)。详情可以参考python面向对象。

或者你也可以省略掉Exception as e,直接简写为:

# -*- coding: utf-8 -*-

try:

dic = {'a':1}

lis = [0,0]

print(lis[0])

print(1)

print(dic['python66'])

except NameError as e:

print('出错!打印未定义变量',e)

except ZeroDivisionError as e:

print('出错!除以0',e)

except IndexError as e:

print('出错!列表索引异常',e)

except:

print('未知异常')

0

1

未知异常

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值