python笔记9-异常

异常

  • 异常总结
异常原因
AssertionError判断语句(assert)失败
AttributeError尝试访问未知的对象属性
EOFErrorinput()读取到EOF却没有接收任何数据
FloatingPointError浮点数计算错误
GeneratorExitgenerator.close()方法被调用的时候
ImportError导入模块失败的时候
IndexError索引超出序列的范围
KeyError字典中查找-一个不存在的关键字
KeyboardInterrupt用户输入中断健(Crl+c)
MemoryError内存溢出(可通过删除对象释放内存)
NameError尝试访问一个不存在的变量
NotimplementedError尚未实现的方法
OSError操作系统产生的异常(例如打开-个不存在的文件 )
OverflowError数值运算超出最大限制
ReferenceError弱引用( weak reference )试图访问一个已经被垃圾回收机制回收了的对象
RuntimeError一般的运行时错误
StopIteration迭代器没有更多的值
SyntaxErrorPython的语法错误
IndentationError缩进错误
TabErrorTab和空格混合使用
SystemErrorPython编译器系統错误
SystemExitPython编译鼹进程被关闭
TypeError不同类型间的无效操作
UnboundLocalError访问一个未初始化的本地变量( NameError的子类)
UnicodeEncodeErrorUnicode相关的错误( ValueError的子类)
UnicodeDncodeErrorUnicode解码时的错误( UnicodeError的子类)
UnicodeTranslateErrorUnicode转换时的错误( UnicodeError的子美)
ValueError传入无效的参数
ZeroDivisionError除数为零
list1 = [1]
assert len(list1) > 0
list1.pop()
1
assert len(list1) > 0
NameError                                 Traceback (most recent call last)
<ipython-input-1-06cfd067d119> in <module>
----> 1 assert len(list1) > 0

NameError: name 'list1' is not defined
list1.ffsakf
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-6-b3cb545c998e> in <module>
----> 1 list1.ffsakf

AttributeError: 'list' object has no attribute 'ffsakf'
  • 异常处理函数
'''
try:
    检测访问
except Exception[as reason]:
    出现异常(Exception)后的处理代码
finally:
    无论如何都会被执行的代码
'''
try:
    s = 1 + '1'
    fsadf
except NameError as reason:
    print('出错了,原因:'+ str(reason))
except TypeError as reason:
    print('出错了,原因:' + str(reason))

出错了,原因:unsupported operand type(s) for +: 'int' and 'str'
try:
    s = 1 + '1'
    fsadf
except: # 不推荐这样做
    print('出错了')
出错了
try:
    s = 1 + '1'
    fsadf
except (TypeError, NameError):
    print('出错了')
出错了
  • raise
  • 这个语句就是把已知的错误重新定义出错原因
raise TypeError('5545446')
TypeError                                 Traceback (most recent call last)
<ipython-input-26-013431d31575> in <module>
----> 1 raise TypeError('5545446')

TypeError: 5545446
try:
    a = input("输入一个数:")
    #判断用户输入的是否为数字
    if(not a.isdigit()):
        raise ValueError("a 必须是数字")
except ValueError as e:
    print("引发异常:",repr(e))
输入一个数:e
引发异常: ValueError('a 必须是数字')
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值