2.1 try---except
try: <语句> except <异常类名字>: <语句>
a = input("请输入被除数:") b = input("请输入除数:") if a.isdigit() and b.isdigit(): a, b = int(a), int(b) if b != 0: print(a / b) else: print("除零错误") else: print("输入有误")
try: a = int(input("请输入被除数:")) b = int(input("请输入除数:")) print(a / b) except Exception: print("输入有误/除零错误")
2.2 except 多个异常
try: <语句> except <异常类名字>: <语句> except <异常类名字>: <语句> else: # 如果没有异常发生 <语句>
2.3 多个异常写到一个元组中
try: 代码 except(Exception1[,Exception2[,...ExceptionN]]]): 发生以上多个异常中的一个,执行这块代码
2.4 获取异常信息
try: f = open(‘124.txt‘, ‘r‘) f.write(‘HelloWorld‘) # 将捕获到的异常存储到到变量errMsg中 except IOError as errMsg: print(errMsg)
2.5 捕获所有异常
except 不带任何异常 try: a = 2/0 except: print("遇到异常")
except 父类Exception try: b = 3/0 except BaseException as result: print(result)
2.6 捕获异常中else的用法
try: b = 3/1 except BaseException as result: print(result) else: # 可以访问b的值 print("没有遇到异常,结果为:%d" % b)
2.7 try--- finally
try: f = open(‘123.txt‘, ‘r‘) # 如果遇到异常,后续代码不再执行,直接执行except模块 f.write(‘HelloWorld‘) # 在这关闭文件是否合适 f.close() except IOError as errMsg: print(errMsg) else: print("写入文件成功") finally: # 最终一定要关闭文件(打印,验证是否执行) try: f.close() except NameError: print("文件不存在") else: print("finally,文件关闭")
class GenderException(Exception): def __init__(self): super().__init__() # args为BaseException的属性 self.args = ‘性别只能为男或者女‘ # 也可以自定义一个属性 self.msg = ‘性别只能为男或者女‘
raise [Exception [, args [, traceback]]]
class Student(object): def __init__(self, name, gender, age): self.__name = name self.setGender(gender) self.__age = age def setGender(self, gender): if gender == ‘男‘ or gender == ‘女‘: self.__gender = gender else: # 抛出一个自定义的性别异常(也可以以列表的形式抛出多个异常) # raise [GenderException(), Exception()] raise GenderException() try: stu1 = Student(‘大黄‘, ‘男1‘, 18) except GenderException as e: # 打印自定义的信息 print(e.msg) # 打印父类属性的信息 print(e.args)
原文:https://www.cnblogs.com/songdanlee/p/11367688.html