python3异常_python3 异常处理

1、异常基础

在编程过程中为了增加友好性,在程序出现bug时一般不会将错误信息显示给用户,而是现实一个提示的页面,通俗来说就是不让用户看见大黄页!!!

try:

pass #代码主体

except Exception as e:

pass

例如:转化为数字类型,输入字符串就会报错

inp=input("please input what you want:")

try:

num=int(inp)

# li=[]

# li[8888]

# except ValueError as e:

# print("值错误")

# except IndexError as e:

# print("索引错误")

except Exception as e:

print(e)

2、异常种类

python中的异常种类非常多,每个异常专门用于处理某一项异常!!!

AttributeError 试图访问一个对象没有的树形,比如foo.x,但是foo没有属性x

IOError 输入/输出异常;基本上是无法打开文件

ImportError 无法引入模块或包;基本上是路径问题或名称错误

IndentationError 语法错误(的子类) ;代码没有正确对齐

IndexError 下标索引超出序列边界,比如当x只有三个元素,却试图访问x[5]

KeyError 试图访问字典里不存在的键

KeyboardInterrupt Ctrl+C被按下

NameError 使用一个还未被赋予对象的变量

SyntaxError Python代码非法,代码不能编译(个人认为这是语法错误,写错了)

TypeError 传入对象类型与要求的不符合

UnboundLocalError 试图访问一个还未被设置的局部变量,基本上是由于另有一个同名的全局变量,

导致你以为正在访问它

ValueError 传入一个调用者不期望的值,即使值的类型是正确的

dic = ["kobe", 'calvin']

try:

dic[10]

except IndexError as e:

print (e)

s1 = 'calvin'

try:

int(s1)

except ValueError as e:

print (e)

对于上述实例,异常类只能用来处理指定的异常情况,如果非指定异常则无法处理。

在python的异常中,有一个万能异常:Exception,他可以捕获任意异常,即:

s1 = 'calvin'

try:

int(s1)

except Exception as e:

print (e)

有了这个万能异常,其他异常不可以忽略,对于特殊处理或提醒的异常需要先定义,最后定义Exception来确保程序正常运行。

s1 = 'hello'

try:

int(s1)

except ValueError as e:

print("值错误")

except IndexError as e:

print("索引错误")

except Exception as e:

print(e)

3、异常其他结构

try:

# 主代码块

pass

except KeyError as e:

# 异常时,执行该块

pass

else:

# 主代码块执行完,执行该块

pass

finally:

# 无论异常与否,最终执行该块

pass

4、主动触发异常

try:

inp=input("please input number:")

if inp.isdigit():

print("right")

else:

raise Exception("get error!")

except Exception as e:

#e 封装了错误信息的对象

print(e)

5、自定义异常

class kb:

def __init__(self,arg):

self.kk=arg

def __str__(self):

return self.kk

obj=kb("get error!!!")

print(obj)

6、断言

# assert 条件

assert 1 == 1

assert 1 == 2

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/489794.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql blackhole引擎_MySQL BlackHole引擎

概念像MyISAM、InnoDB,BlackHole是另一种MySQL引擎,从字面意思来看,其表现就像一个黑洞,只进不出,进来就消失。换句话说,任何往其中写的数据都将丢失,有点像Linux的/dev/null比如一个表test的引…

元学习—Meta Learning的兴起

来源:专知【导读】元学习描述了训练深度神经网络相关的更高级别的元素。在深度学习文献中,“元学习”一词经常表示神经网络架构的自动化设计,经常引用“ AutoML”,“少量学习”或“神经架构搜索”。OpenAI的魔方机器人手的成功源于…

codevs 1021 玛丽卡

题目链接:http://codevs.cn/problem/1021/ 题解: 哦!最小值的最大值!!二分!!!……咳咳…… SPFA算法,邻接表(邻接矩阵应该不会炸,懒得试了……&am…

python3 rid1.7.4.2 控制台中文乱码_TL;DR - 有关 Python 2 和 Sublime Text 中文 Unicode 编码问题的分析与理解...

TL;DR 问题背景: 相信很多用 Sublime Text 来写 Python 2 的同学都遇到过以下这个问题(例如这位同学 /t/100435 和这位同学/t/163012 ): 在 Sublime Text 里用 Cmd (Ctrl) B 运行代码 print u中文,想要打印出 unicode…

条码管理系统mysql_银行通用固定资产条码管理系统

银行通用固定资产条码管理系统固定资产条码管理系统是企业管理中的一个重要组成部分,固定资产具有价值高,使用周期长、管理难度大等特点。针对这些问题,本系统运用计算机及条形码等技术,从而实现固定资产的信息化管理。本系统有如…

Linux用find查找指定文件的操作

一 . 查找当前用户下某个文件 例如 要查找的文件名为 sn_sav20140710 可已使用下面的语句查询 [sinopeclocalhost ~]$ find . -name sn_sav20140710 二.查找指定目录下的文件 这里只需指定目录即可 例如: 例如 要查找的文件名为 sn_sav20140710 可已使用下面的语句查…

服务器行业深度解析:服务器未来需求知多少

来源:国盛证券一、 全球公有云加速渗透叠加企业上云大趋势来临1. 全球云领军收入增速维持高位,Q2 CAPEX 出现恢复信号全球云计算进入甜蜜点,IaaS 市场主导增长。1)2017 年 6 月,Morgan Stanley 认为全球云计算行业进入…

海上瓶子下有东西吗_洗衣液瓶子我从来不扔,瓶身这样剪几刀,解决了很多家庭的大烦恼...

洗衣液瓶子相信家家户户都会有,每次用完的空洗衣液瓶你都扔掉了吗?那就太可惜了,卖废品也卖不了几毛钱,我们可以将废弃的洗衣液瓶简单剪几刀,就能够变废为宝了,能够解决很多家庭生活中的大烦恼。今天就教大…

光耦继电器

光耦继电器(光电继电器) AQW282SX 282SZ 280SX 280SZ 284SX 284SZ 212S 212SX 21 2SZ 文章目录 光耦继电器(光电继电器)前言一、光耦继电器是什么二、光耦继电器的类型三、光电耦合器的应用总结前言 光耦继电器在工业控制、通讯、医疗设备、家电及汽车电子等领域得到广泛应…

Java学习网站

黑马: http://bbs.itheima.com/forum.php 考试网站: http://www.nowcoder.com/ 牛客网 比较专业的学习技术网站: http://www.ibm.com/developerworks/cn/java/j-lo-chinesecoding/ 开源中国 : http://www.oschina.net/ 学习网站 : http://iteye.com/ ImportNew : http://www.im…

媒体查询响应式布局的几个尺寸_媒体查询实现响应式布局

本文主要介绍 media 查询的使用。通过媒体查询,在不同的屏幕尺寸下,可以设置不同的样式。以此,可以完美解决不同屏幕适配的问题。话不多说,先来看看效果:CSSmedia screen and (max-width: 400px) {.btn {background-co…

为什么说,我们可能是宇宙中唯一的智慧生命?

来源:原理我们在宇宙中是孤独的吗?这个问题可归结为:智慧究竟是自然选择的一种可能结果,还是一种不太可能的侥幸?显而易见的是,可能的事件可以经常发生;不太可能的事件很少发生,或者…

jeecg输入中文查询导表为空_学术利器—SCI期刊影响因子查询/中文核心期刊查询系统更新...

吐槽想起自己第一次投中文期刊的情形:当时学校最低要求是发表一篇核心级别的期刊论文,但是哪些期刊是核心期刊呢?完全不知道!都怎么投稿呢?也完全不知道!只能问问周围的同学或者师兄师姐。他们也就知道谁谁…

Python 学习随笔1

在一个列表中,找出重复数组的位置。 比如在列表name [1, 5, 8, 22, 56, 2, 8, 45, 7, 2, 35, 2, 486, 2, 152, 111, 265, 2, 2]中,找出2的位置。 方法1: 流程为: 找到第一个2的位置,然后在2之后的一个数后面切片&…

震撼!15项世界互联网领先科技成果发布,将对你的生活产生什么影响?

来源:浙江发布10月20日下午,世界互联网领先科技成果发布活动在乌镇互联网国际会展中心举行。今年6月,世界互联网大会组委会向全球互联网企业、科研机构、高等院校以及个人征集全球互联网领域的领先科技成果,收到了来自中国、美国、…

python 实例化父类对象_在Python中从现有超类实例化子类

所以我正在与第三方库进行交互,这会引发例外情况,但它基本上都会引发相同的异常(特别是suds.WebFault.但是,有可能从异常引发的数据中确定异常的确切类型.我希望将这个异常抽象为子类化这种类型的异常,即:from suds import WebFaultclass MoreSpecificError(WebFaul…

java执行查询postgresql得到中文乱码_Greenplum: 基于PostgreSQL的分布式数据库内核揭秘(上篇)...

关于作者姚延栋,山东大学本科,中科院软件所研究生。PostgreSQL中文社区委员,致力于Greenplum/PostgreSQL开源数据库产品、社区和生态的发展。一、数据库内核揭秘Greenplum 是最成熟的开源分布式分析型数据库(今年6月份预计发布的 Greenplum 6…

Openstack的镜像上传原理

openstack的horizon的上传镜像流程 通过html的form表单上传文件 先上传到horizon指定的临时目录,存储起来 通过glance-api请求接口 实际上glance-api也是提供了一个上传接口,由前面我们存储的临时目录,上传到glance-api的镜像创建接口; [root…

关于授予81项成果2019年度“吴文俊人工智能科学技术奖”的决定

来源:人工智能人物为加快实施国家创新驱动发展战略,深入贯彻《新一代人工智能发展规划》,更好地推进科教兴国、人才强国的政策落实,弘扬“尊重劳动、尊重知识、尊重人才、尊重创造”的良好风尚,通过推选优秀的智能科学…

mysql索引 和 es索引_MySQL索引 VS ElasticSearch索引

今天MySQL数据库栏目介绍MySQL索引与ElasticSearch索引的对比。前言这段时间在维护产品的搜索功能,每次在管理台看到 elasticsearch 这么高效的查询效率我都很好奇他是如何做到的。这甚至比在我本地使用 MySQL 通过主键的查询速度还快。为此我搜索了相关资料&#x…