老男孩python学习自修第十九天【异常处理】
1.常见的错误
TypeError 类型错误
NameError 没有该变量
ValueError 不期望的值
AttributeError 没有该属性
UnboundLocalError 没有该局部变量
ImportError 没有该模块
IOError 打不开文件
IndexError 列表没有该下标
KeyError 字典没有该键
IndentationError 代码没有对齐
SyntaxError 语法错误
KeyboardError Ctrl+C被按下
2.示例代码
#!/usr/bin/env python
# _*_ coding:UTF-8 _*_
if __name__ == "__main__":
try:
pass
except (NameError, ValueError), e:
print "NameError或者ValueError"
except IOError, e:
print "IOError"
except Exception, e:
print "其他的错误"
else:
print "没有错误"
finally:
print "有没有错误都执行"
3.自定义异常与手动触发异常
#!/usr/bin/env python
# _*_ coding:UTF-8 _*_
class MyException(Exception):
def __init__(self, error):
self.error = error
def __str__(self):
return self.error
if __name__ == "__main__":
try:
raise MyException("自定义错误")
except (NameError, ValueError), e:
print e
print "NameError或者ValueError"
except IOError, e:
print e
print "IOError"
except Exception, e:
print e
print "其他的错误"
else:
print "没有错误"
finally:
print "有没有错误都执行"
结果:
/Users/liudaoqiang/PycharmProjects/numpy/venv/bin/python /Users/liudaoqiang/Project/python_project/day19/except_test.py 自定义错误 其他的错误 有没有错误都执行 Process finished with exit code 0
注意:
(1)若类中定义了__str__()则直接写该类时会调用该__str__()
(2)使用raise Exception()会手动触发异常
老男孩python学习自修第十九天【异常处理】的更多相关文章
- 老男孩python学习自修第二十四天【多进程】
1. 体验多进程的运行速度 #!/usr/bin/env python # _*_ coding:UTF-8 _*_ from multiprocessing import Pool import t ...
- 老男孩python学习自修第十六天【常用模块之sys和os】
例子: sys.argv 命令行参数List,第一个元素是程序本身路径 sys.exit(n) 退出程序,正常退出时exit(0) sys.version 获取Python解释程序的版本信息 sys. ...
- 老男孩python学习自修第十五天【常用模块之time】
例如: #!/usr/bin/env python # _*_ coding:UTF-8 _*_ import time if __name__ == "__main__": pr ...
- 老男孩python学习自修第十四天【序列化和json】
序列化是使用二进制的方式加密列表,字典或集合,反序列化是解密的过程:序列化开启了两个独立进程进行数据交互的通路 使用pickle进行序列化和反序列化 例如: pickle_test.py #!/usr ...
- 老男孩python学习自修第十天【三元表达式与lambda表达式】
例如: 1.使用三元表达式给变量赋值 result = '空' if x == None else x 2.使用lambda定义函数 add = lambda x, y: x+y
- 老男孩python学习自修第九天【yield生成器】
1.如果在一个方法中有yield关键字则该方法返回的是一个生成器对象 2.对生成器对象进行操作必须进行迭代或循环处理 例如: yield_test.py #!/usr/bin/env python # ...
- 老男孩python学习自修第二十三天【多线程】
1. 线程的创建与运行 #!/usr/bin/env python # _*_ coding:UTF-8 _*_ from threading import Thread def foo(param1 ...
- 老男孩 python学习自修第二十二天【文件上传与下载】
1.使用socket实现文件上传 server.py #!/usr/bin/env python # _*_ coding:UTF-8 _*_ import os import SocketServe ...
- 老男孩python学习自修第十八天【面向对象】
1.类与对象(构造方法与实例化) #!/usr/bin/env python # _*_ coding:UTF-8 _*_ class Province: def __init__(self, nam ...
随机推荐
- pycharm企业版注册码
pycharm下载最新版 链接:https://pan.baidu.com/s/1gKOCf3PQFc1_2amkMUU1-A 提取码:9pt0 下载企业版: http://www.jetbrains ...
- Thymeleaf3语法详解
每天学习一点点 编程PDF电子书.视频教程免费下载:http://www.shitanlife.com/code Thymeleaf是Spring boot推荐使用的模版引擎,除此之外常见的还有F ...
- 【转】svn冲突问题详解 SVN版本冲突解决详解
(摘自西西软件园,原文链接http://www.cr173.com/html/46224_1.html) 解决版本冲突的命令.在冲突解决之后,需要使用svnresolved来告诉subversion冲 ...
- esp8266驱动液晶屏
ESP8266 + 1.44 TFT LCD https://www.joaquim.org/esp8266-wifi-scan/ LCD ILI9341 (320×240). Source Code ...
- robotframework中的try exception。断言失败后,后面语句能继续执行
1.在robot中,断言有时会失败,但不想影响后面语句的执行,这时候要用到 Run Keyword And Continue On Failure
- Luogu4983 忘情
Luogu4983 忘情 定义序列 \(x_1,\ x_2,\ \cdots,\ x_n\) 的值为 \(\frac{((\displaystyle\sum_{k=1}^nx_k\times \bar ...
- Sharding-JDBC实践(一)简介
转载自:ShardingSphere官网 目录 一.介绍 1. Sharding-JDBC 2. Sharding-Proxy 3. Sharding-Sidecar(TBD) 4. 混合架构 二.功 ...
- 洛谷 P1605 迷宫
题目链接 https://www.luogu.org/problemnew/show/P1605 题目背景 迷宫 题目描述 给定一个N*M方格的迷宫,迷宫里有T处障碍,障碍处不可通过.给定起点坐标和 ...
- TIME_WAIT过多的解决方法(转)
1.参考:https://blog.csdn.net/liangzhao_jay/article/details/50546898 2.参考: [Unix 网络编程]TCP状态转换图详解 - wenq ...
- Generative Adversarial Nets[EBGAN]
0. 背景 Junbo Zhao等人提出的"基于能量的GAN"网络,其将判别器视为一个能量函数而不需要明显的概率解释,该函数可以是一个可训练的损失函数.能量函数是将靠近真实数据流形 ...