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 AES加密模块用法分析
May 22 Python
python嵌套字典比较值与取值的实现示例
Nov 03 Python
PyQt5每天必学之像素图控件QPixmap
Apr 19 Python
Anaconda2下实现Python2.7和Python3.5的共存方法
Jun 11 Python
Django基础知识与基本应用入门教程
Jul 20 Python
Python Flask框架扩展操作示例
May 03 Python
Python异常处理例题整理
Jul 07 Python
基于python实现生成指定大小txt文档
Jul 20 Python
基于Python实现简单学生管理系统
Jul 24 Python
Python 代码调试技巧示例代码
Aug 11 Python
Python利用Pillow(PIL)库实现验证码图片的全过程
Oct 04 Python
python3.7中安装paddleocr及paddlepaddle包的多种方法
Nov 27 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
做一个有下拉功能的留言版
2006/10/09 PHP
PHP实现ASCII码与字符串相互转换的方法
2017/04/29 PHP
JavaScript 处理Iframe自适应高度(同或不同域名下)
2013/03/29 Javascript
get(0).tagName获得作用标签示例代码
2014/10/08 Javascript
javascript实现五星评分功能
2015/11/10 Javascript
全面解析Bootstrap图片轮播效果
2015/12/03 Javascript
Javascript的表单与验证-非空验证
2016/03/18 Javascript
JS控制弹出悬浮窗口(一览画面)的实例代码
2016/05/30 Javascript
利用forever和pm2部署node.js项目过程
2017/05/10 Javascript
Angularjs渲染的 using 指令的星级评分系统示例
2017/11/09 Javascript
Vue使用vue-recoure + http-proxy-middleware + vuex配合promise实现基本的跨域请求封装
2019/10/21 Javascript
vue设置导航栏、侧边栏为公共页面的例子
2019/11/01 Javascript
javascript-hashchange事件和历史状态管理实例分析
2020/04/18 Javascript
Angular+ionic实现折叠展开效果的示例代码
2020/07/29 Javascript
[01:03:56]Mineski vs TNC 2018国际邀请赛淘汰赛BO1 8.21
2018/08/22 DOTA
在PyCharm环境中使用Jupyter Notebook的两种方法总结
2018/05/24 Python
python调试神器PySnooper的使用
2019/07/03 Python
python爬虫刷访问量 2019 7月
2019/08/01 Python
python将四元数变换为旋转矩阵的实例
2019/12/04 Python
Pytorch训练过程出现nan的解决方式
2020/01/02 Python
python GUI库图形界面开发之PyQt5 Qt Designer工具(Qt设计师)详细使用方法及Designer ui文件转py文件方法
2020/02/26 Python
Python xlwt模块使用代码实例
2020/06/10 Python
介绍一下linux的文件系统
2012/03/20 面试题
老师的检讨书
2014/02/23 职场文书
安全教育感言
2014/03/04 职场文书
自动一体化专业求职信
2014/03/15 职场文书
食品安全演讲稿
2014/09/01 职场文书
文员试用期转正自我鉴定
2014/09/14 职场文书
大学生学习计划书
2014/09/15 职场文书
2015年效能监察工作总结
2015/04/23 职场文书
政协工作总结2015
2015/05/20 职场文书
圆明园观后感
2015/06/03 职场文书
2016猴年春节问候语
2015/11/11 职场文书
关于职业道德的心得体会
2016/01/18 职场文书
解决Nginx 配置 proxy_pass 后 返回404问题
2021/03/31 Servers
netty 实现tomcat的示例代码
2022/06/05 Servers