乱读天书, 不求甚解
周祎骏的个人云笔记
Toggle navigation
乱读天书, 不求甚解
主页
Linux:系统配置
Linux:用户管理
Linux:优化排错
Linux:进程调度
Linux:文件系统
Linux:网络
Linux:系统服务
Linux:安全
Linux:内核
容器:Docker
容器:containerd
容器编排:Kubernetes
IAC:Terraform
大数据:Hadoop
大数据:Zookeeper
大数据:Hbase
消息队列:rsyslog
消息队列:kafka
数据库:MySQL
数据库:MongoDB
搜索引擎:Elasticsearch
时序数据库:OpenTSDB
网站服务:Nginx
编程:Bash
编程:Perl
编程:Python
编程:C
编程:JAVA
编程:Rust
版本控制:gitlab
知识管理:docusaurus
常用小工具
关于我
标签
python 2.01 异常处理
2017-01-21 10:16:17
78
0
0
admin
> python 的异常处理 #简单的例子 ``` #!/usr/bin/python # -*- coding: UTF-8 -*- try: file = open("./file", "w") file.write("something") except Exception ,message: #可以写多种异常类型,用逗号分隔,圆括号括起(元组的形式) print message else: #没有异常的话运行 print "write succeed!" file.close() finally: print "always run!" #无论如何都会运行 ``` **用"except:"不加任何参数可以抓取所有异常,不过这样不好,建议用"except Exception, message"** *** #主动触发异常 ``` #!/usr/bin/python # -*- coding: UTF-8 -*- try: raise Exception("hahaha") #主动触发想要的异常 except Exception ,message: print message ``` **如果捕捉到了异常,又想重新触发它,可以直接调用不加参数的raise** *** #用户自定义异常 ``` #!/usr/bin/python # -*- coding: UTF-8 -*- class myownexception(Exception): def __init__(self,msg): self.msg=msg try: raise myownexception("hahaha") except myownexception,message: print message.msg ``` *** #python 的标准异常 | 名称 | 解释 | |------------------|------------------------------------------------------| |BaseException |所有异常的父类 | |SystemExit |sys.exit() 来触发 | |Exception |所有非SystemExit异常的父类,用户定义的异常也应该继承它| |KeyboardInterrupt |键盘输入ctrl c | |StopIteration |迭代器next()没有更多的值 | |GeneratorExit |生成器(generator)发生异常来通知退出 | |StandardError |所有的内建标准异常的父类(除SystemExit,KeyboardInterrupt,StopIteration,GeneratorExit外)| | |ArithmeticError |所有数值计算错误的父类 | |FloatingPointError|浮点计算错误 | |OverflowError |数值运算超出最大限制 | |ZeroDivisionError |除零的错误 | |AssertionError |断言语句失败 | |AttributeError |对象没有这个属性 | |EOFError |读到EOF标记时候没有读到任何数据 | |EnvironmentError |系统异常的父类 | |IOError |输入/输出操作失败 | |OSError |操作系统错误 | |WindowsError |windows系统调用失败 | |ImportError |导入模块失败 | |LookupError |无效数据查询的父类 | |IndexError |序列中没有此索引(index) | |KeyError |映射中没有这个键 | |MemoryError |内存不够 | |NameError |未声明/初始化对象 | |UnboundLocalError |访问未初始化的本地变量 | |ReferenceError |弱引用试图访问已经垃圾回收了的对象 | |RuntimeError |一般错误,不匹配其它典型异常的错误 | |NotImplementedError|RuntimeError的子类 | |SyntaxError |import,exec,input,eval python 代码有语法错误 | |IndentationError |缩进错误 | |TabError |Tab 和空格混用 | |SystemError |一般的解释器系统错误 | |TypeError |传入类型不对的参数 | |ValueError |传入类型对,值不对的参数 | |UnicodeError |Unicode 相关的错误 | |UnicodeDecodeError|Unicode 解码时的错误 | |UnicodeEncodeError|Unicode 编码时错误 | |UnicodeTranslateError|Unicode 转换时错误 | |Warning |警告的父类 | |DeprecationWarning|关于被弃用的功能的警告 | |FutureWarning |关于代码语法将来会改变的警告 | |PendingDeprecationWarning|关于使用的功能将会被废弃的警告 | |RuntimeWarning |运行时行为的警告 | |SyntaxWarning |语法的警告 | |UserWarning |用户代码生成的警告 | ***
上一篇:
python 0.06 执行动态代码
下一篇:
python 2.03 面向对象
文档导航