栏目分类:
子分类:
返回
终身学习网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
终身学习网 > IT > 软件开发 > 后端开发 > Python

python基础⑦-异常

Python 更新时间:发布时间: 百科书网 趣学号

文章目录
  • 基础用法
  • 常见异常
  • 合并捕获多种异常
  • 万能捕获
  • 断言
  • finally 必然执行

'''
1.异常
    异常是错误发生的信号,一旦程序出错就会产生一个异常,如果该异常
    没有被应用程序处理,那么该异常就会抛出来,程序的执行也随之终止

    异常包含三个部分:
        1.异常的追踪信息 File "D:/python代码1/day7/异常.py", line 8, in 
        2.异常的类型     NameError
        3. 异常的信息   name 'a' is not defined
    错误分为两大类:
        1. 语法上的错误:在程序运行前就应该立即修正  这个好避免
        2. 逻辑上的错误:比如:字典没有key,你非要取key,
                            列表没有索引
                            变量没有名字  这些不好避免
2.为何要异常处理
    避免程序因为异常而崩溃,所以在应用程序中应该对异常进行处理,从而增强程序的健壮性

3. 如何异常处理
try:
    代码1
    代码2
    代码3
    ......
except NameError:
    当抛出的异常是NameError时执行的子代码块
except ....:
    pass
else:
    pass
finally:
    pass
'''
基础用法
def a():
    print(111)
a
# 异常处理的单分支
try:
    a
except NameError as e:
    print('兄弟你检查一下代码')
    print(e)
else:
    # 程序没有抛出异常的时候执行
    print('代码正确')
finally:
    # 不管有错没错 一定会执行的部分
    print('完成了异常捕获')


常见异常
# 常见异常
# print(1+'a') # TypeError
# print(1+)    # SyntaxError
# d = {'x':1,'y':2} # KeyError
# d['z']
# l = [1,2] # IndexError
# l[3]
try:
    a
    print('=====1>')
    print('=====1>')
    print('=====1>')
    l = [1,2] # IndexError
    l[3]
except NameError as e:
    print(e)
except IndexError as e:
    print(e)
else:
    # 程序没有抛出异常的时候执行
    print('代码正确')
finally:
    # 不管有错没错 一定会执行的部分
    print('完成了异常捕获')

合并捕获多种异常
# 合并
try:
    # a
    print('=====1>')
    print('=====1>')
    print('=====1>')
    l = [1,2] # IndexError
    l[3]
except (NameError,IndexError,KeyError) as e:
    print(e)
else:
    # 程序没有抛出异常的时候执行
    print('代码正确')
finally:
    # 不管有错没错 一定会执行的部分
    print('完成了异常捕获')
万能捕获
# 判断文件是否存在
# 如果不存在创建
# try:
#     f = open('text1.txt','r')
# except:
#     print('你的文件没有创建')
#     f = open('text1.txt','w')
#     print('我帮你创建了')
# else:
#     print(f.read())
# finally:
#     f.close()

断言
# 了解
# 断言
print('=======111')
# 自定义异常
l = [1, 2, 3, 4]
# if len(l) != 5:
#     raise TypeError('列表的长度必须为5,这是我的规则')
# 断言如果条件不满足会抛异常
assert len(l) == 5
print('=======222')

finally 必然执行

结合异常处理,确保打开文件后的正常关闭。用open直接打开一个文件,然后write进行写入,假设在写入的时候可能会报错,

# 写段代码确保报错的情况下依然可以把文件关闭掉。
f = open('text2.txt','w')
try:
    dic = {'name':'dahai'}
    f.write(dic['aaa'])
except Exception as e:
    print(e)
finally:
    f.close()
    print('文件已关闭')

转载请注明:文章转载自 www.051e.com
本文地址:http://www.051e.com/it/293671.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 ©2023-2025 051e.com

ICP备案号:京ICP备12030808号