异常处理:

预计可能会发生的异常,明确如果发生,如何处理,不过一般不参与业务逻辑,也不要一次性捕捉全部异常,不然可能程序就不可控了。

data={}
mmm=[] try: #捕获异常,
data["name"]
mmm[3]
except IndexError as e: #探索异常,如果是探索到的异常类型,则执行以下操作,程序整体不崩溃
print("下标越界:",e) #可以单个捕获
except KeyError as e:
print("索引错误:",e) try:
data["name"]
mmm[3]
except (IndexError,KeyError) as e: #可以捕获多个
print("索引错误,下标越界:",e) try:
data["name"]
mmm[3]
except IndexError as e: #探索异常,如果是探索到的异常类型,则执行以下操作,程序整体不崩溃
print("下标越界:",e) #可以单个捕获
except KeyError as e:
print("索引错误:",e)
except Exception as e: #可以捕获全部 这种一般不去直接上来就用,因为无法定位,用在最后挺好,捕获全部未知错误。
print("出错:",e)
else: #这个else就是没有异常会走这里
print("一切正常")
finally: #不论有没有错误,都会执行这个
print("不论有没有错误,都会执行这个") #语法错误,缩进错误,这类导致无法编译的异常,是无法捕获的。 #自定义异常:
class WangYueException(Exception):
def __init__(self,msg):
self.message=msg # def __str__(self): #这个只是原理描述,确实在调用异常时,信息是通过__str__()方法获取的,但不用在自定义异常时写出来,父类都写好了的
# return self.message try:
print("其他代码")
raise WangYueException("我的异常出来了。") #自定义异常是无法呗python自动触发的,因为python也不知道自己的业务逻辑,所以,需要用raise来触发异常
except WangYueException as e:
print(e) #不要覆盖系统默认已经有的异常类型,不然会出现无法捕获系统自带异常的捕获,虽然报错正常

python3.x Day5 异常处理的更多相关文章

  1. python3.x Day5 面向对象

    类:类是指:对具有相同属性的事物的抽象.蓝图.原型.在类中定义了这些事物都具备的属性和共同的方法. 对象:一个对象就是一个类实例化以后的实例,一个类必须经过实例化后才能在程序中被使用,一个类可以实例化 ...

  2. Python3和Python2 异常处理except的不同

    最近准备做个微信公众号的项目,但是微信平台的开发者文档介绍的是web.py,虽然有支持python3的版本.但是在介绍页面的还是python2的代码. python2.x的时候: try: raise ...

  3. Python3学习笔记——异常处理

    #!/usr/bin/env python # 1.异常处理 try: # 主要执行的代码 except IndexError as e: # 对于某些错误需要特殊处理的,可以对特殊错误进行捕捉 pr ...

  4. python3.x Day5 socket编程

    socket编程: socket 是大多应用层的底层的封装,实际封装的就是 发送,接收,但其实很复杂,在传输层协议之上(TCP/IP,UDP) 既然是网络通讯,一般按照服务端,客户端来处理:服务端: ...

  5. python3.x Day5 subprocess模块!!

    subprocess模块: # subprocess用来替换多个旧模块和函数 os.system os.spawn* os.popen* popen2.* commands.* subprocess简 ...

  6. Python3.5学习之旅——day5

    模块初识 一.定义 在python中,模块是用来实现某一特定功能的代码集合.其本质上就是以‘.py’结尾的python文件.例如某文件名为test.py,则模块名为test. 二.导入方法 我们在这一 ...

  7. try except 异常捕获的方法、断言的使用

    except as e中的'e'的作用总结 - 2puT - CSDN博客 Python使用try except处理程序异常的三种常用方法分析 Python3和Python2 异常处理except的不 ...

  8. Python3中urllib详细使用方法(header,代理,超时,认证,异常处理)

    urllib是python的一个获取url(Uniform Resource Locators,统一资源定址器)了,我们可以利用它来抓取远程的数据进行保存哦,下面整理了一些关于urllib使用中的一些 ...

  9. 【Python3之异常处理】

    一.错误和异常 1.错误 代码运行前的语法或者逻辑错误 语法错误(这种错误,根本过不了python解释器的语法检测,必须在程序执行前就改正) def test: ^ SyntaxError: inva ...

随机推荐

  1. J20170520-ts

    手取り   净收入,实收额;用手抓住,到手

  2. 5 分钟掌握 JS 实用窍门技巧,帮你快速撸码--- 删除数组尾部元素、E6对象解构、async/await、 操作平铺嵌套多维数组等

    1. 删除数组尾部元素 一个简单方法就是改变数组的length值: const arr = [11, 22, 33, 44, 55, 66]; arr.length = 3; console.log( ...

  3. USACO Training3.3 A Game【区间Dp】 By cellur925

    题目传送门 一股浓浓的博弈论香气...然而本蒟并不会博弈论. 开始用双端队列+假的dp水过了24pts水数据. 其实是布星的,两人都绝顶聪明会深谋远虑不像我只看眼前,所以上述算法错误. 正解:区间dp ...

  4. 《Google软件测试之道》心得笔记1

    Google软件测试介绍 把开发和测试融合在一起——开发和测试必须同时展开 开发人员自己要对自己写的代码负责,比专职的测试人员更适合做测试工作. 测试开发工程师SET 对于Google拥有很少量的测试 ...

  5. [Usaco2005 Nov]Asteroids

    Description Bessie wants to navigate her spaceship through a dangerous asteroid field in the shape o ...

  6. Object C学习笔记18-SEL,@ selector,Class,@class--转

    一. SEL 类型 在上一篇介绍了几个方法,都只是介绍了其使用方式但是没有具体介绍参数: - (id)performSelector:(SEL)aSelector; - (id)performSele ...

  7. 【LeetCode】297. Serialize and Deserialize Binary Tree

    二叉树的序列化与反序列化. 如果使用string作为媒介来存储,传递序列化结果的话,会给反序列话带来很多不方便. 这里学会了使用 sstream 中的 输入流'istringstream' 和 输出流 ...

  8. AngularJS开发最常犯的10个错误

    简介 AngularJS是目前最为活跃的Javascript框架之一,AngularJS的目标之一是简化开发过程,这使得AngularJS非常善于构建小型app原型,但AngularJS对于全功能的客 ...

  9. Oracle对表空间无权限

    有的时候我们在Oracle数据库中对执行insert.update之类的语句时会出错,Oracle说我们对表空间无权限.执行下面的语句就可以修改用户对表空间的权限了. 执行语句: alter user ...

  10. 死磕 java集合之终结篇

    概览 我们先来看一看java中所有集合的类关系图. 这里面的类太多了,请放大看,如果放大还看不清,请再放大看,如果还是看不清,请放弃. 我们下面主要分成五个部分来逐个击破. List List中的元素 ...