python异常处理try except过程解析


Posted in Python onFebruary 03, 2020

这篇文章主要介绍了python异常处理try except过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

某些时候我们能够预判程序可能会出现何种类型的错误,而此时我们希望程序继续执行而不是退出,此时就需要用到异常处理;下面是常用的几种异常处理方法

#通过实例属性 列表 字典构造对应的异常
class Human(object):
  def __init__(self, name, age, sex):
    self.name = name
    self.age = age
  def get_info(self):
    print("my name is %s,age is %s"%(self.name, self.age))
man1 = Human("李四", 22, "man")
list1 = [1, 2, 3]
dict1 = {"name":"张三", "age":12}

#异常捕获的语法
try:
  man1.get_info1()
except AttributeError as e: #AttributeError为错误类型,此种错误的类型赋值给变量e;当try与except之间的语句触发
# AttributeError错误时程序不会异常退出而是执行except AttributeError下面的内容
  print("this is a AttributeError:",e)
finally:
  print("this is finally")

try:
  man1.get_info()
  #list1[3]
  #dict1["sex"]
except AttributeError as e:
  print("this is a AttributeError:",e)
else:
  print("一切正常") #当try与except之间内容没有触发捕获异常也没有异常退出就会跳过except转到执行else下面的语句
finally:
  print("this is finally")#不论程序是否触发异常,只要没有退出都会执行finally下面的内容

try:
  list1[3]
  dict1["sex"]
except (IndexError, KeyError) as e: #当需要捕获多个异常在一条except时候可以使用这种语法,try与except之间语句触发任意一个异常捕获后就跳到except下面的语句继续执行
  print("this is a IndexError or KeyError:",e)

try:
  list1[3]
  dict1["sex"]
except IndexError as e:#当需要分开捕获多个异常可以使用多条except语句,try与except之间语句触发任意一个异常捕获后就跳到对应except执行其下面的语句,其余except不在继续执行
  print("this is a IndexError:",e)
except KeyError as e:
  print("this is a KeyError:",e)

try:
  man1.get_info1()
except IndexError as e:
  print("this is a IndexError:",e)
except Exception as e:
  print("this is a OtherError:",e)#可以使用except Exception来捕获绝大部分异常而不必将错误类型显式全部写出来

#自己定义异常
class Test_Exception(Exception):
  def __init__(self, message):
    self.message = message
try:
  man1.get_info()
  raise Test_Exception("自定义错误")#自己定义的错误需要在try与except之间手工触发,错误内容为实例化传入的参数
except Test_Exception as e:
  print(e)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python对list列表结构中的值进行去重的方法总结
May 07 Python
在Django同1个页面中的多表单处理详解
Jan 25 Python
简单谈谈Python中的元祖(Tuple)和字典(Dict)
Apr 21 Python
python TCP Socket的粘包和分包的处理详解
Feb 09 Python
使用numpy和PIL进行简单的图像处理方法
Jul 02 Python
Pandas 数据处理,数据清洗详解
Jul 10 Python
Python实现数据可视化看如何监控你的爬虫状态【推荐】
Aug 10 Python
PyQt弹出式对话框的常用方法及标准按钮类型
Feb 27 Python
使用python切片实现二维数组复制示例
Nov 26 Python
python+selenium 脚本实现每天自动登记的思路详解
Mar 11 Python
linux 下selenium chrome使用详解
Apr 02 Python
Pygame Rect区域位置的使用(图文)
Nov 17 Python
利用Python脚本实现自动刷网课
Feb 03 #Python
tensorflow 限制显存大小的实现
Feb 03 #Python
基于tensorflow指定GPU运行及GPU资源分配的几种方式小结
Feb 03 #Python
tensorflow指定GPU与动态分配GPU memory设置
Feb 03 #Python
TensorFlow内存管理bfc算法实例
Feb 03 #Python
python numpy数组中的复制知识解析
Feb 03 #Python
opencv python Canny边缘提取实现过程解析
Feb 03 #Python
You might like
php使用正则表达式进行字符串搜索的方法
2015/03/23 PHP
PHP IDE phpstorm 常用快捷键
2015/05/18 PHP
php实现word转html的方法
2016/01/22 PHP
PHP array_key_exists检查键名或索引是否存在于数组中的实现方法
2016/06/13 PHP
postman的安装与使用方法(模拟Get和Post请求)
2018/08/06 PHP
Jquery 插件开发笔记整理
2011/01/17 Javascript
简单的jquery拖拽排序效果实现代码
2011/09/20 Javascript
jquery实现弹出层遮罩效果的简单实例
2014/03/03 Javascript
js 针对html DOM元素操作等经验累积
2014/03/11 Javascript
JavaScript中number转换成string介绍
2014/12/31 Javascript
javascript面向对象之对象的深入理解
2015/01/13 Javascript
js实现浏览器窗口大小被改变时触发事件的方法
2015/02/02 Javascript
JavaScript数据结构和算法之图和图算法
2015/02/11 Javascript
JavaScript中join()方法的使用简介
2015/06/09 Javascript
利用JavaScript的AngularJS库制作电子名片的方法
2015/06/18 Javascript
JS的框架Polymer中的dom-if和is属性使用说明
2015/07/29 Javascript
利用jQuery实现漂亮的圆形进度条倒计时插件
2015/09/30 Javascript
[原创]Javascript 实现广告后加载 可加载百度谷歌联盟广告
2016/05/11 Javascript
Nodejs中 npm常用命令详解
2016/07/04 NodeJs
JS简单随机数生成方法
2016/09/05 Javascript
AngularJS中的promise用法分析
2017/05/19 Javascript
vue移动端弹框组件的实例
2018/09/25 Javascript
解决Vue动态加载本地图片问题
2019/10/09 Javascript
小程序点击图片实现png转jpg
2019/10/22 Javascript
Python3.x和Python2.x的区别介绍
2013/02/12 Python
python好玩的项目—色情图片识别代码分享
2017/11/07 Python
[原创]python爬虫(入门教程、视频教程)
2018/01/08 Python
Python爬虫实现百度翻译功能过程详解
2020/05/29 Python
详解CSS3选择器:nth-child和:nth-of-type之间的差异
2017/09/18 HTML / CSS
详解CSS3中常用的样式【基本文本和字体样式】
2020/10/20 HTML / CSS
数据库什么时候应该被重组
2012/11/02 面试题
大三自我鉴定范文
2013/10/05 职场文书
外语专业毕业生个人的自荐信
2013/11/19 职场文书
银行保安拾金不昧表扬稿
2015/05/05 职场文书
python 如何用terminal输入参数
2021/05/25 Python
Nginx文件已经存在全局反向代理问题排查记录
2022/07/15 Servers