python3.x Day5 异常处理
异常处理:
预计可能会发生的异常,明确如果发生,如何处理,不过一般不参与业务逻辑,也不要一次性捕捉全部异常,不然可能程序就不可控了。
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 异常处理的更多相关文章
- python3.x Day5 面向对象
类:类是指:对具有相同属性的事物的抽象.蓝图.原型.在类中定义了这些事物都具备的属性和共同的方法. 对象:一个对象就是一个类实例化以后的实例,一个类必须经过实例化后才能在程序中被使用,一个类可以实例化 ...
- Python3和Python2 异常处理except的不同
最近准备做个微信公众号的项目,但是微信平台的开发者文档介绍的是web.py,虽然有支持python3的版本.但是在介绍页面的还是python2的代码. python2.x的时候: try: raise ...
- Python3学习笔记——异常处理
#!/usr/bin/env python # 1.异常处理 try: # 主要执行的代码 except IndexError as e: # 对于某些错误需要特殊处理的,可以对特殊错误进行捕捉 pr ...
- python3.x Day5 socket编程
socket编程: socket 是大多应用层的底层的封装,实际封装的就是 发送,接收,但其实很复杂,在传输层协议之上(TCP/IP,UDP) 既然是网络通讯,一般按照服务端,客户端来处理:服务端: ...
- python3.x Day5 subprocess模块!!
subprocess模块: # subprocess用来替换多个旧模块和函数 os.system os.spawn* os.popen* popen2.* commands.* subprocess简 ...
- Python3.5学习之旅——day5
模块初识 一.定义 在python中,模块是用来实现某一特定功能的代码集合.其本质上就是以‘.py’结尾的python文件.例如某文件名为test.py,则模块名为test. 二.导入方法 我们在这一 ...
- try except 异常捕获的方法、断言的使用
except as e中的'e'的作用总结 - 2puT - CSDN博客 Python使用try except处理程序异常的三种常用方法分析 Python3和Python2 异常处理except的不 ...
- Python3中urllib详细使用方法(header,代理,超时,认证,异常处理)
urllib是python的一个获取url(Uniform Resource Locators,统一资源定址器)了,我们可以利用它来抓取远程的数据进行保存哦,下面整理了一些关于urllib使用中的一些 ...
- 【Python3之异常处理】
一.错误和异常 1.错误 代码运行前的语法或者逻辑错误 语法错误(这种错误,根本过不了python解释器的语法检测,必须在程序执行前就改正) def test: ^ SyntaxError: inva ...
随机推荐
- PCB Polar SI9000阻抗模型图片文字识别方法
用过Polar SI9000的都知道,阻抗模型图片可以进行用户鼠标交互,那么它的是如何实现的呢,下面就讲一下如何实现此功能的方法 一.看看Polar SI9000阻抗模型图片交互效果 鼠标点击阻抗 ...
- SQL Server OPENQUERY使用
以下以创建好的ORAC链接服务器为例: A. 执行 SELECT 传递查询 SELECT * FROM OPENQUERY(ORAC, 'SELECT ID,NAME FROM SCOTT.RYB') ...
- vue 相关技术文章集锦
不断更新,如果看到好的文章~~~ 总结篇 vue组件间通信六种方式(完整版) - 原作者:简书-浪里行舟 原理/源码篇 Vue.js 技术揭秘 Vue技术内幕 实战/经验篇 Vue相关开源项目库汇总 ...
- [ZPG TEST 108] blockenemy【树形dp】
T3:blockenemy blockenemy.pas/in/out 128M 1s 你在玩电子游戏的时候遇到了麻烦...... 你玩的游戏是在一个虚拟的城市里进行,这个城市里有n个点,都从0~n- ...
- 求指教--hadoop2.4.1集群搭建及管理遇到的问题
集群规划: 主机名 IP 安装的软件 运行的进程 hadooop 192.168.1.69 jdk.hadoop NameNode.DFSZKFailoverController(zkfc) hado ...
- js 常用处理
判断浏览器环境是PC端还是手机端 function goPAGE() { if ((navigator.userAgent.match(/(phone|pad|pod|iPhone|iPod|ios| ...
- css靠左,靠右
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- Discrete Logging
Discrete Logging Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 5865 Accepted: 2618 ...
- laravel学习:容器绑定与解析
1.在服务容器中注册类(bind) $this->app->bind('sender','MailSender');//$this->app成为服务容器. 2.从服务容器生成类( ...
- jquery 获取日期 date 对象、 判断闰年
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...