task 03:异常处理

一、目标

  1. 了解可能会出现的各类异常
  2. 熟练掌握try_except_finally结构,使用raise语句抛出指定的异常。

二、框架

在这里插入图片描述

三、新知识点

Python 标准异常总结

  1. BaseException:所有异常的 基类
  2. Exception:常规异常的 基类
  3. StandardError:所有的内建标准异常的基类
  4. ArithmeticError:所有数值计算异常的基类
  5. FloatingPointError:浮点计算异常
  6. OverflowError:数值运算超出最大限制
  7. ZeroDivisionError:除数为零
  8. AssertionError:断言语句(assert)失败
  9. AttributeError:尝试访问未知的对象属性
  10. EOFError:没有内建输入,到达EOF标记
  11. EnvironmentError:操作系统异常的基类
  12. IOError:输入/输出操作失败
  13. OSError:操作系统产生的异常(例如打开一个不存在的文件)
  14. WindowsError:系统调用失败
  15. ImportError:导入模块失败的时候
  16. KeyboardInterrupt:用户中断执行
  17. LookupError:无效数据查询的基类
  18. IndexError:索引超出序列的范围
  19. KeyError:字典中查找一个不存在的关键字
  20. MemoryError:内存溢出(可通过删除对象释放内存)
  21. NameError:尝试访问一个不存在的变量
  22. UnboundLocalError:访问未初始化的本地变量
  23. ReferenceError:弱引用试图访问已经垃圾回收了的对象
  24. RuntimeError:一般的运行时异常
  25. NotImplementedError:尚未实现的方法
  26. SyntaxError:语法错误导致的异常
  27. IndentationError:缩进错误导致的异常
  28. TabError:Tab和空格混用
  29. SystemError:一般的解释器系统异常
  30. TypeError:不同类型间的无效操作
  31. ValueError:传入无效的参数
  32. UnicodeError:Unicode相关的异常
  33. UnicodeDecodeError:Unicode解码时的异常
  34. UnicodeEncodeError:Unicode编码错误导致的异常
  35. UnicodeTranslateError:Unicode转换错误导致的异常
    在这里插入图片描述

Python标准警告总结

  1. Warning:警告的基类
  2. DeprecationWarning:关于被弃用的特征的警告
  3. FutureWarning:关于构造将来语义会有改变的警告
  4. UserWarning:用户代码生成的警告
  5. PendingDeprecationWarning:关于特性将会被废弃的警告
  6. RuntimeWarning:可疑的运行时行为(runtime behavior)的警告
  7. SyntaxWarning:可疑语法的警告
  8. ImportWarning:用于在导入模块过程中触发的警告
  9. UnicodeWarning:与Unicode相关的警告
  10. BytesWarning:与字节或字节码相关的警告
  11. ResourceWarning:与资源使用相关的警告

raise语句

raise [someException [, args [, traceback]]]

try:
raise NameError('HiThere')
except NameError:
print('An exception flew by!')
# An exception flew by!

第一个参数someException是触发异常的名称,异常名称是Python提供的标准异常中的任何一种;第二个参数args是可选的,args可以是一个元组,也可以是单独的字符串。大多数情况下,单一的字符串用来指示错误发生的原因。如果传的是元组,通常的组成是一个错误字符串、一个错误编号、一个处理错误的函数地址等;第三个参数是一个traceback对象,它也是可选的,实际上这个参数很少使用,主要是用于跟踪错误记录。

raise异常处理参考

四、习题

#猜数游戏1~100.py
import random
Guess_number = random.randint(0,100)
i = 1
while True:
    print('第{}次猜,请输入整数:'.format(i))
    try:
        i = i + 1
        a = int(input())
        if a < Guess_number:
            print('遗憾,太小了')
        elif a > Guess_number:
            print('遗憾,太大了')
        else:
            print('共预测了{}次,你猜中了这个数是:{}'.format(i,a))
            break
    except ValueError:
         print('输入无效')


猜数字:try/except语句

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值