异常处理(Exception):
1、什么是异常(exception)?
—程序在运行过程中,因为某些原因(BUG、用户误操作、软硬件、网络……),引起的程序奔溃,无法正常运行的现象,叫做异常
2、为什么处理异常?
—代码更加稳定的运行,异常处理就是一种容错!!
3、如何处理?
—用try关键字抓取异常
try:
num = int(input("请输入一个整数:"))
a = num / 0
except ValueError as e:
print("出现异常,信息是:", e)
num = int(input("注意,必须是这个整数:"))
except ZeroDivisionError as e:
print("除数不能为零!!!")
except Exception as e:
print("其他异常")
else:
print("如果try中所有都没有异常,则进入else")
finally:
print("必须要执行的代码,不管存不存在异常!!")
print(f'{num} + 10 = {num + 10}')
—结果如下:
4、try - except语法规则
try:
# 可能出现异常代码
except 异常1:
# 异常1的处理代码
except 异常2:
# 异常2的处理代码
except Exception:
# 其他异常的处理代码
else:
# 没有发生异常时的代码
finally:
# 必须要执行的代码,不管存不存在异常,常用于资源回收、数据备份等操作
5、自定义异常的使用
—系统自带的异常并不能适用于所有情况,有时候我们需要自己定义异常
—(1)自定义异常类
——和类的定义一致,不过继承的是Exception父类
class MyException(Exception):# 一般继承Exception类,不继承BaseException类
""" 这个一个自定义异常类,用来处理一些系统没有指定的异常情况"""
def __init__(self, msg):
Exception.__init__(self, msg)# 调用Exception类的初始化函数对自定义异常类进行初始化
—(2)抛出异常
—raise关键字
——作用:抛出异常信息,目的就是向上层(调用者)传递一些错误信息,抛出的异常可以用try - except语法进行抓取
def test():
num = int(input("请输入一个小于10整数:"))
if num > 10:
# 出错了,抛出异常!!
raise MyException("输入的数字不能大于10")
print("GAME OVER")
# 抓取异常
try:
test()
except MyException as e:
print(e)
结果如下: