1.抛出异常
-
自己根据情况定义异常信息,进行手动抛出
try:
num = input("请输入数字:")
# 判断用户输入的是否是数字
if not num.isdigit():
# 自己定义有异常信息,进行手动抛出
raise ValueError("num必须是数字")
else:
print(num)
except Exception as e:
print("程序有异常,异常信息是:", repr(e))
-
执行结果
请输入数字:1
1
请输入数字:a
程序有异常,异常信息是: ValueError('num必须是数字')
2.自定义异常
-
正常来说:python提供的异常类型已经够用了,但是有时候我们有自己的定制的要求,此时我们可以自定义异常类,继承自Exception类就可以了
"""
1.自己定义的异常类:必须继承自Exception
2.自定义异常类中的构造函数,定义属性保存异常信息
3.重写 __str__ 函数,打印异常的信息
"""
-
自定义异常类
# 自定义异常类
class MyExc(Exception): # 自定义异常类继承自Exception
# 构造函数
def __init__(self, value):
self.value = value
# 重写 __str__ 函数
def __str__(self):
if self.value == 0:
return "除数不能是0"
# 自定义方法
def getNum(num):
try:
if num == 0:
exc = MyExc(num)
print(exc)
else:
print(10 / num)
except Exception as e:
pass
# 调用getNum()方法
getNum(5)
getNum(0)