Python超级简单入门学习之基本语法六 异常

本文深入解析Python内置异常机制,包括各类异常的详细说明,如BaseException、SystemExit、KeyboardInterrupt等,以及如何捕获和手动抛出异常。同时介绍了自定义异常的方法,帮助读者全面掌握Python异常处理。

异常机制*

1.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: 尚未实现的方法
SyntaxError :Python 语法错误
IndentationError : 缩进错误
TabError :Tab 和空格混用
SystemError : 一般的解释器系统错误
TypeError :对类型无效的操作
ValueError :传入无效的参数
UnicodeError : Unicode 相关的错误
UnicodeDecodeError: Unicode 解码时的错误
UnicodeEncodeError : Unicode 编码时错误
UnicodeTranslateError : Unicode 转换时错误
Warning :警告的基类
DeprecationWarning : 关于被弃用的特征的警告
FutureWarning : 关于构造将来语义会有改变的警告
OverflowWarning : 旧的关于自动提升为长整型(long)的警告
PendingDeprecationWarning : 关于特性将会被废弃的警告
RuntimeWarning : 可疑的运行时行为(runtime behavior)的警告
SyntaxWarning : 可疑的语法的警告
UserWarning :用户代码生成的警告

2.捕获异常

当有异常抛出时,可以使用如下方法捕获异常:

try:
        <语句>        #运行别的代码
except <名字>:
        <语句>        #如果在try部份引发了'name'异常
except <名字>,<数据>:
        <语句>        #如果引发了'name'异常,获得附加的数据
else:
        <语句>        #如果没有异常发生
finally:
        <语句>        #退出try时总会执行

3.手动抛出异常

通过raise关键字,可以手动抛出异常

raise [Exception [, args [, traceback]]]

4.自定义异常

可以写一个类继承Exception来开发一个自定义异常。
自定义有异常:

class Networkerror(RuntimeError):
       def __init__(self, arg):
                self.args = arg

之后就可以使用这个异常了:

try:
        raise Networkerror("Bad hostname")
except Networkerror,e:
        print e.args
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值