python3异常处理和约束
2022-02-20 22:46:25 3 举报
AI智能生成
python3异常处理和约束整理
作者其他创作
大纲/内容
QQ截图20200304005113.png
语法错误和逻辑错误
错误分成哪两种?
03 错误信息.png
异常就是程序运行时发生错误的信号,在python中错误触发的异常如下
什么是异常?
AttributeError: 试图访问一个对象没有的属性,比如foo.x,但是foo没有属性x。
IOError: 输入/输出异常;基本上是无法打开文件。
ImportError: 无法引入模块或包;基本上是路径问题或名称错误。
IndentationError: 语法错误(的子类) ;代码没有正确对齐。
IndexError:下标索引超出序列边界,比如当x只有三个元素,却试图访问x[5]
KeyError: 试图访问字典里不存在的键。
KeyboardInterrupt: Ctrl+C被按下。
NameError: 使用一个还未被赋予对象的变量。
SyntaxError: Python代码非法,代码不能编译(个人认为这是语法错误,写错了)。
TypeError: 传入对象类型与要求的不符合。
UnboundLocalError: 试图访问一个还未被设置的局部变量,基本上是由于另有一个同名的全局变量,导致你以为正在访问它。
ValueError: 传入一个调用者不期望的值,即使值的类型是正确的。
QQ截图20200304230225.png
其他类型:
python中的异常种类?
异常和错误
QQ截图20200304231001.png
异常处理
什么是异常处理?
通过异常处理机制来增强你程序的健壮性与容错性。
为什么要进行异常处理?
QQ截图20200304234808.png
使用 if 表达式处理异常
使用 if 表达式
QQ截图20200304232329.png
part1: 基本语法
QQ截图20200304232559.png
part2: 单个指定异法处理
QQ截图20200304232815.png
part3: 多分支异法处理
QQ截图20200304233232.png
part4: 万能异常 Exception
QQ截图20200304233301.png
part5: 异常的其他结构
QQ截图20200304233312.png
part6: 主动触发异常
QQ截图20200304233324.png
part7: 自定义异常
QQ截图20200304233335.png
part8: 断言
QQ截图20200304233350.png
part9: traceback
使用 try...except
QQ截图20200304235500.png
try..except方式好处
try..except方式较if方式的好处
如何进行异常处理?
try..except方式多了,会导致你的代码可读性变差,只有在有些异常无法预知的情况下,才应该加上try...except,其他的逻辑错误应该尽量修正。
QQ截图20200304235312.png
异常的继承关系
什么时候用异常处理?
QQ截图20200307001450.png
约束是对子类进行的约束
什么是约束?
1、在父类中给出一个方法。这个方法中什么都不写。就抛异常:raise NotImplementError()
2、在子类中把上述的方法进行重写。(重写:子类重新定义父类中的方法)
QQ截图20200307001223.png
通过抛异常实现
抽象类: 语法:类(metaclass=ABCMeta) \t\t\t概念: 如果类中包含了抽象方法。这个类一定是抽象类。 \t\t\t特点: 抽象类一般不创建对象。 \t\t\t\t 抽象类中可以存在正常方法。
抽象方法:抽象方法不用给出方法体。写个pass就行了。(子类继承父类时必须重写此方法)
QQ截图20200307001311.png
通过抽象类和抽象方法实现
如何实现约束?
通过约束能够清楚知道:\"没有实现的错误\"。
实现约束有何益处?
约束
引入模块 hashlib 1 创建md5对象 2.把加密信息交给md5对象 3.获取密文
如何实现MD5加密?
QQ截图20200307023115.png
获取密文
QQ截图20200307012624.png
密文解密
MD5普通加密
QQ截图20200307023229.png
多重加密获取密文1
QQ截图20200307013118.png
多重加密密文解密1
QQ截图20200307023340.png
多重加密获取密文2
多重加密密文加密2复杂度过高无法解密
MD5多重加密
MD5加密
程序调试
了解软件程序运行情况,是否正常
软件程序运行故障分析与问题定位
如果应用的日志信息足够详细和丰富,还可以用来做用户行为分析
1.日志的作用
QQ截图20200307153747.png
2.日志的等级
QQ截图20200307154426.png
3.日志字段信息与日志格式
Python自身也提供了一个用于记录日志的标准库模块--logging
第三方库来提供日志操作功能,比如:log4j,log4php等
4.日志功能的实现
一.日志相关概念
QQ截图20200307171134.png
1. logging模块的日志级别
QQ截图20200307155433.png
2. logging模块的使用方式介绍
二.logging模块简介
QQ截图20200307170232.png
1.最简单的日志输出
QQ截图20200307171428.png
2. 那么问题来了
QQ截图20200307161039.png
3. logging.basicConfig()函数说明
QQ截图20200307161328.png
4. logging模块定义的格式字符串字段
QQ截图20200307170614.png
5.经过配置的日志输出
QQ截图20200307173830.png
实例
QQ截图20200307172936.png
6. 其他说明
三.使用logging提供的模块级别的函数记录日志
QQ截图20200307174035.png
1. logging日志模块四大组件
QQ截图20200307174955.png
Logger类
QQ截图20200307174422.png
Handler类
QQ截图20200307174528.png
Formater类
QQ截图20200307174537.png
Filter类
2. logging日志模块相关类及其常用方法介绍
QQ截图20200307174647.png
详解
QQ截图20200307174559.png
3. logging日志流处理流程
四.logging模块日志流处理流程
QQ截图20200307175442.png
1. 需求
QQ截图20200307175448.png
2. 分析
3. 代码实现
五.使用logging四大组件记录日志-实例
《python之配置日志的几种方式》
QQ截图20200307175543.png
六.配置logging的几种方式
《Python之向日志输出中添加上下文信息》
<< Logging CookBook >>
QQ截图20200307175550.png
七.向日志输出中添加上下文信息
八.参考文档
日志处理
python3异常处理和约束
0 条评论
回复 删除
下一页