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函数参数*args**kwargs用法实例
Dec 04 Python
Python爬取Coursera课程资源的详细过程
Nov 04 Python
python 循环读取txt文档 并转换成csv的方法
Oct 26 Python
pandas读取csv文件,分隔符参数sep的实例
Dec 12 Python
Python编程图形库之Pillow使用方法讲解
Dec 28 Python
python实现石头剪刀布程序
Jan 20 Python
双向RNN:bidirectional_dynamic_rnn()函数的使用详解
Jan 20 Python
python如何查看网页代码
Jun 07 Python
如何在mac版pycharm选择python版本
Jul 21 Python
Scrapy项目实战之爬取某社区用户详情
Sep 17 Python
解决python的空格和tab混淆而报错的问题
Feb 26 Python
Python并发编程实例教程之线程的玩法
Jun 20 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
dede3.1分页文字采集过滤规则详说(图文教程)
2007/04/03 PHP
PHP模拟http请求的方法详解
2016/11/09 PHP
使用PHP开发留言板功能
2019/11/19 PHP
js nextSibling属性和previousSibling属性概述及使用注意
2013/02/16 Javascript
js中的scroll和offset 使用比较的实例与分析
2013/09/29 Javascript
JS+CSS实现仿新浪微博搜索框的方法
2015/02/24 Javascript
原生js实现移动开发轮播图、相册滑动特效
2015/04/17 Javascript
使用纯javascript实现经典扫雷游戏
2015/04/23 Javascript
Javascript验证Visa和MasterCard信用卡号的方法
2015/07/27 Javascript
JavaScript编程中实现对象封装特性的实例讲解
2016/06/24 Javascript
javascript特殊文本输入框网页特效
2016/09/13 Javascript
详解angular中如何监控dom渲染完毕
2017/01/03 Javascript
JS利用cookies设置每隔24小时弹出框
2017/04/20 Javascript
angular2 ng build部署后base文件路径问题详细解答
2017/07/15 Javascript
JS实现的简单下拉框联动功能示例
2018/05/11 Javascript
vue代理和跨域问题的解决
2018/07/18 Javascript
javascript设计模式 ? 命令模式原理与用法实例分析
2020/04/20 Javascript
8个非常实用的Vue自定义指令
2020/12/15 Vue.js
[02:40]DOTA2英雄基础教程 巨牙海民
2013/12/23 DOTA
Python Web框架Tornado运行和部署
2020/10/19 Python
修改默认的pip版本为对应python2.7的方法
2018/11/06 Python
详解Python安装tesserocr遇到的各种问题及解决办法
2019/03/07 Python
通过celery异步处理一个查询任务的完整代码
2019/11/19 Python
Python 文件数据读写的具体实现
2020/01/24 Python
tensorflow 实现自定义梯度反向传播代码
2020/02/10 Python
Python字典fromkeys()方法使用代码实例
2020/07/20 Python
CSS3 icon font完全指南(CSS3 font 会取代icon图标)
2013/01/06 HTML / CSS
班级道德讲堂实施方案
2014/02/24 职场文书
《赶海》教学反思
2014/04/20 职场文书
《金色的脚印》教后反思
2014/04/23 职场文书
服务承诺书范文
2014/05/19 职场文书
分公司总经理岗位职责
2014/07/30 职场文书
房屋租赁委托书范本
2014/10/04 职场文书
伏羲庙导游词
2015/02/09 职场文书
百万英镑观后感
2015/06/09 职场文书
使用golang编写一个并发工作队列
2021/05/08 Golang