Python基础 笔记13

本文详细介绍Python中的异常处理机制,包括如何捕获特定类型的异常、如何处理未知类型的异常、如何使用else和finally语句块,以及如何抛出异常的详细信息。此外还介绍了断言的应用场景及Python标准异常和警告的总结。
摘要由CSDN通过智能技术生成

一、笔记说明

  1. 本博客专栏《Python基础》的所有笔记均为.py格式文件,复制后均可无误执行(注意修改文件路径,每个人的工作区不一样)。
  2. 在复制代码时,若代码段标明了文件名称,即该笔记包含多个文件,请注意每个代码段标明的文件名称,并在本地创建文件夹以便于运行。
  3. 代码运行环境Python3.7.9,建议使用Pycharm2020.1作为编辑器,使用Anaconda3作为包管理器。

二、代码部分

# Python笔记15.py

print("1.需要加入可能出现的异常的类型:无法捕获任一类型异常")
try:#下方为可能出现的异常
    print(a)
except NameError as e:#打印命名错误异常
    print("此处仅打印NameError异常")
    print(e)
except TypeError as e:#打印命名错误异常
    print("此处仅打印TypeError异常")
    print(e)
print("异常只会被捕获一次,捕获成功后其他异常处理语句不工作")

print("2.捕获不知道类型的异常")
try:
    print(1+"123")
except NameError as e:#打印命名错误异常
    print("此处仅打印NameError异常")
    print(e)#此异常为用户的非致命异常
except Exception as e:
    print(e)#此处一般为hacker攻击导致的高危异常
print("对后台系统没有严重伤害的错误的处理方式:"
      "如:输入格式错误,数据类型错误等;"
      "在通用异常捕获语句Exception前加入可能出现的异常所对应的语句"
      "这样的处理方式使用户在可以获得纠错提示的情况下,杜绝了hacker攻击的可能")

print("3.注意:任何语言都不可以捕获代码本身的语法错误")
# try:
    # def a:
    #     print(132)#此处编译器会报错
# except Exception as e:
#     print(e)#此处一般为hacker攻击导致的高危异常

print("4.在异常语句后加入else语句,若没有捕获异常,则执行else和try中的语句,有异常则终止运行"
      "在异常语句后加入finally语句,无论是否有异常都会执行的语句")
try:
    print("1323")
except Exception as e:
    print(e)#此处一般为hacker攻击导致的高危异常
else:
    print("else...")#无异常则执行
finally:#无论是否有异常都会执行的语句
    print("finally...")

print("5.抛出异常详细信息")
# try:
#     print(a)
# except Exception as e:
#     raise e#抛出异常详细信息

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

print("6.多异常处理")
try:
    s = 1 + '1'
    int("abc")
except (OSError, TypeError, ValueError) as error:
    print('出错了!\n原因是:' + str(error))

print("7.断言:一般用于相同项目中同一个源代码文件下处理变量名称相同的问题"
      "可在第100行为字符串,后方执行断言,例如断言200行后变量必须为整型"
      "则若200行后该变量有不是整型的情况出现,则断言出错"
      "注:断言后方可以逗号连接批注,断言出错(改动值也会报错)会报错")
a=1351
print(a)
assert a==1351,"57行断言出错!assert a==123"
a="456"
# assert a==1351,"57行断言出错!assert a==123"#解除注释则报错


market='''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转换错误导致的异常
'''
print(market)


market='''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:与资源使用相关的警告
'''
print(market)

三、转载说明

  1. 本文内容完全原创,文章完成时间2021.3.17。
  2. 若要转载本文,请在转载文章末尾附上本文链接:https://blog.csdn.net/qq_35772105/article/details/114919572
  3. 本文代码部分唯一MD5:1A4EB9BAA9EE687F5E7BE18C9DC5AE90。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

魔菲赫伯特

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值