学习记录_Pyrthon异常处理2

学习记录
日期: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()
上一篇:JavaScript原型对象


下一篇:Mybatis传递参数