学习记录
日期:2021年9月9日上午
学习内容
try-except-else-finally用法
‘’’
try:
except 异常 as 变量:
else:
没有异常执行的代码
finally:
最后一定要执行的代码
案例:将一些字符串数据写入到文件中
‘’’
try:
file = open('123.txt', 'w', encoding='utf-8')
file.write('Hello')
file.write('World')
# write 只能将字符串写到文件中
# file.write([1, 2, 3])
print('写入完毕')
except Exception as e:
print(e.args)
else:
print('没有异常,操作成功')
finally:
#最后一定要确保执行的代码
# 将文件关闭
file.close()
print('关闭文件,谢谢使用')
异常的传递
def test1():
print('-' * 10 + 'test1开始' + '-' * 10)
#异常,不正常,python解释器遇到无法解释的代码的时候,罢工
print(aa)
print('-' * 10 + 'test1结束' + '-' * 10)
def test2():
print('-' * 10 + 'test2开始' + '-' * 10)
test1()
print('-' * 10 + 'test2结束' + '-' * 10)
def test3():
print('-' * 10 + 'test3开始' + '-' * 10)
# test2()
try:
test2()
except:
pass
print('-' * 10 + 'test3结束' + '-' * 10)
自定义异常及抛出
自定义异常:
class 自定义异常(BaseException):
def init(self):
pass
以及抛出自定义异常:
raise 异常对象
定义一个学生类,私有属性gender,提供对应的设置值以及访问值的方法
‘’’
#定义一个异常类
class GenderException(Exception):
def __init__(self):
super().__init__()
self.errMsg = '性别只能设置成男或女'
class Student():
def __init__(self,name,gender):
self.name = name
# self.__gender = gender
self.setGender(gender)
#设置性别
def setGender(self,gender):
if gender == '男' or gender == '女':
self.__gender = gender
else:
#抛出异常(性别异常)
raise GenderException()
#获取性别
def getGender(self):
return self.__gender
def showInfo(self):
print('我叫:{0} 性别:{1}'.format(self.name,self.__gender))
try:
stu = Student('学生1','1231')
except Exception as e:
print(e.errMsg)
# try:
# stu.setGender('半男不女')
# except Exception as e:
# print(type(e))
# # print(e.args)
# print(e.errMsg)
# stu.showInfo()