Python学习笔记(九)——异常处理
来源:互联网 发布:mac可以玩lucky dog1 编辑:程序博客网 时间:2024/05/18 00:12
python提供了两个非常重要的功能来处理python程序在运行中出现的异常和错误。
- 异常处理: 本站Python教程会具体介绍。
- 断言(Assertions):本站Python教程会具体介绍。
python标准异常
异常名称描述BaseException所有异常的基类SystemExit解释器请求退出KeyboardInterrupt用户中断执行(通常是输入^C)Exception常规错误的基类StopIteration迭代器没有更多的值GeneratorExit生成器(generator)发生异常来通知退出StandardError所有的内建标准异常的基类ArithmeticError所有数值计算错误的基类FloatingPointError浮点计算错误OverflowError数值运算超出最大限制ZeroDivisionError除(或取模)零 (所有数据类型)AssertionError断言语句失败AttributeError对象没有这个属性EOFError没有内建输入,到达EOF 标记EnvironmentError操作系统错误的基类IOError输入/输出操作失败OSError操作系统错误WindowsError系统调用失败ImportError导入模块/对象失败LookupError无效数据查询的基类IndexError序列中没有此索引(index)KeyError映射中没有这个键MemoryError内存溢出错误(对于Python 解释器不是致命的)NameError未声明/初始化对象 (没有属性)UnboundLocalError访问未初始化的本地变量ReferenceError弱引用(Weak reference)试图访问已经垃圾回收了的对象RuntimeError一般的运行时错误NotImplementedError尚未实现的方法SyntaxErrorPython 语法错误IndentationError缩进错误TabErrorTab 和空格混用SystemError一般的解释器系统错误TypeError对类型无效的操作ValueError传入无效的参数UnicodeErrorUnicode 相关的错误UnicodeDecodeErrorUnicode 解码时的错误UnicodeEncodeErrorUnicode 编码时错误UnicodeTranslateErrorUnicode 转换时错误Warning警告的基类DeprecationWarning关于被弃用的特征的警告FutureWarning关于构造将来语义会有改变的警告OverflowWarning旧的关于自动提升为长整型(long)的警告PendingDeprecationWarning关于特性将会被废弃的警告RuntimeWarning可疑的运行时行为(runtime behavior)的警告SyntaxWarning可疑的语法的警告UserWarning用户代码生成的警告以下为简单的捕捉异常try……except……else的语法:
try:<语句> #运行别的代码except <名字>:#一种或多种异常<语句> #如果在try部份引发了'name'异常except <名字>,<数据>:<语句> #如果引发了'name'异常,获得附加的数据else:<语句> #如果没有异常发生finally:<语句> #退出try时总会执行
当使用except而不带任何异常类型时,捕捉所有类型的异常。
变量接收的异常值通常包含在异常的语句中。在元组的表单中变量可以接收一个或者多个值。
元组通常包含错误字符串,错误数字,错误位置。
触发异常
我们可以使用raise语句自己触发异常
raise语法格式如下:
raise [Exception [, args [, traceback]]]
语句中Exception是异常的类型(例如,NameError)参数是一个异常参数值。该参数是可选的,如果不提供,异常的参数是”None”。
最后一个参数是可选的(在实践中很少使用),如果存在,是跟踪异常对象。
用户自定义异常
通过创建一个新的异常类,程序可以命名它们自己的异常。异常应该是典型的继承自Exception类,通过直接或间接的方式。
以下为与RuntimeError相关的实例,实例中创建了一个类,基类为RuntimeError,用于在异常触发时输出更多的信息。
在try语句块中,用户自定义的异常后执行except块语句,变量 e 是用于创建Networkerror类的实例。
class Networkerror(RuntimeError): def __init__(self, arg): self.args = arg
在你定义以上类后,你可以触发该异常,如下所示:
try: raise Networkerror("Bad hostname")except Networkerror,e: print e.args
阅读全文
0 0
- Python学习笔记(九)——异常处理
- python学习笔记(九)异常处理
- python 系统学习笔记(九)---异常处理
- python 系统学习笔记(九)---异常处理
- Python学习笔记(八)——Python 异常处理
- python学习笔记——异常处理
- Python 学习笔记 ——异常处理
- Python学习笔记之九——错误与异常
- Python学习笔记(4)--异常处理
- Python学习笔记--异常处理
- Python学习笔记--异常处理
- Python学习笔记--异常处理
- Python学习笔记 异常处理
- Python异常处理学习笔记
- Python基础(九)- 异常处理
- Python学习笔记(八):Python 异常处理
- python学习笔记(六)——错误和异常处理
- Python笔记——异常处理
- springmvc文件上传
- C#简单工厂设计模式实现计算器
- Linux中的软连接与硬链接
- Matlab的Gauss_Seidel迭代方法解线性方程组
- IOS helloworld
- Python学习笔记(九)——异常处理
- shell jq 解析json
- 8.3 证明吝啬SAT是NP-完全问题。
- {"errcode":40054,"errmsg":"invalid sub button url domain hint: [WWA480339vr20]的解决办法
- 深夜聊一波栈内存和堆内存的区别
- 运算放大器,晶体管(三极管),LM317
- java连接mysql调试过程
- 开发笔记,长期更新~
- Android 自定义广播(无序广播) BroadcastReceiver广播接受者(静态、动态)