学习记录_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()
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

潘嗨嗨

感谢你的打赏,我会继续努力的

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值