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

 

posted @ 2023-03-29 12:02  Py小阿白  阅读(27)  评论(0)    收藏  举报