您的位置: 网站首页> python基础> 当前文章

try except Exception 异常处理

老董-我爱我家房产SEO2020-08-01154围观,106赞

  上节课我们知道通过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
未知异常

很赞哦!

python编程网提示:转载请注明来源www.python66.com。
有宝贵意见可添加站长微信(底部),获取技术资料请到公众号(底部)。同行交流请加群 python学习会

文章评论

    try except Exception 异常处理文章写得不错,值得赞赏

站点信息

  • 网站程序:Laravel
  • 客服微信:a772483200