Day14-异常处理
一、语法结构
try:
可能发⽣错误的代码
except:
如果出现异常执⾏的代码
try:
可能发⽣错误的代码
except 异常类型:
如果捕获到该异常类型执⾏的代码
二、使用场景
# 获取外界的资源数据(不稳定数据)的时候 偶尔,很少情况发生的异常
# 捕获异常 做补救措施 防止程序直接崩溃
try:
f = open('data1.txt', 'r', encoding='utf-8')
f.close()
except FileNotFoundError: # except 后面不写就是捕获所有的错误
# 写上就是获取单个的异常 其他异常就不能捕获了
print('文件不存在')
f = open('data1.txt', 'w', encoding='utf-8')
f.close()
except Exception as eeeeeeeee: # eeeeeeeee 异常的详情
print(f'其他错误:{eeeeeeeee}')
else: # 当没有发生错误就执行
print('真庆幸,代码没有发生错误')
finally: # 不管有没有发生异常都必须会执行的东西
f.close()
print('文件关闭')
# 可以嵌套多个except
# 可以加else, 当没有发生错误就执行
# 可以加finally, 不管有没有发生异常都必须会执行的东西
三、自定义异常
# raise ValueError('xxxxxx error')
class LenghtError(Exception):
pass
class WidthError(Exception):
pass
def add(a, b):
"""对两个函数求和"""
if type(a) == type(b) == int:
return a + b
else:
raise LenghtError('数据长度不对 error')
add('a', 'b')
四、打包
1、安装pip install pyinstaller
如果报错换清华园地址pip install pyinstaller -i https://pypi.tuna.tsinghua.edu.cn/simple
1、 右键点击文件—Open In—Explorer, 打开文件所在文件夹
2、 点击地址栏,输入cmd调出指令框
3、 输入pyinstaller -F 需要打包的文件名
-F 打包成一个exe文件 这个文件启动比较慢
-D 打包成一个文件夹 相对较大 运行速度较快
-I 更换exe文件图标
其他:
1、异常是Python对象,表示一个错误。
2、当Python脚本发生异常时我们需要捕获处理它,否则程序会终止执行。
3、常见异常类型
4、可以通过其共同父类Exception捕获输出。
except Exception as e:
# 类的对象实例调用__class__属性时会指向该实例对应的类,而后再调用 __name__ 就会输出该实例对应的类的类名
print(e.__class__.__name__,":",e)
5、try-except-else
如果抛出异常执行except内部代码
如果程序正常执行else内部代码
6、try-except-finally
不管程序有无发生异常,都将执行**finally**内部代码。
7、主动触发异常
raise Exception()
8、自定义异常
raise ShortInputError(len(password), 6) # 主动触发异常 并返回提示信息 可触发自定义异常中的__str__方法
9、断言
assert 断言
raise AssertionError