ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

学习记录_Pyrthon异常处理2

2021-09-09 12:33:08  阅读:121  来源: 互联网

标签:10 记录 Pyrthon self gender print 异常 def


学习记录
日期: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()

标签:10,记录,Pyrthon,self,gender,print,异常,def
来源: https://blog.csdn.net/weixin_44578760/article/details/120198773

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有