个人学习笔记,欢迎借鉴
异常处理:程序停止执行并提出错误信息,抛出(raise)异常,使用异常捕捉可以针对突发的事件进行集中的处理,从而保证程序的稳定性与健壮性。
在Python中,异常也是对象,BaseException是所有内置异常的基类
(待学习)爬虫requests
最常见的异常处理结构
try..except..
子类要放在父类之前,如下代码所示:
a=(44,78,-80,55)
total=0
try:
for i in a:
if i<0:
raise ValueError
total+=i
print("合计=",total)
except Exception: #直接触发Exception,由于Exception为父类
print("发生异常")
except ValueError:
print("数值不能为负")
自定义异常:通常需要raise关键字引发异常
例题:自定义一个异常类class AgeError(Exception),该类可以检测输入的年龄是否在18到60岁之间,在类内重写__str()__方法返回错误提示。并编写测试代码,若出现输入年龄不在范围内则抛出异常。
#自定义异常类:
class AgeError(Exception):
def __init__(self,age):
self.age=age
def __str__(self):
return str(self.age)+"年龄错误!应该在18-60之间!"
age=int(input("请输入一个年龄:"))
if age<18 or age>60:
raise AgeError(age)
else:
print("正常的年龄",age)
在4题基础上,抛出异常后用try异常处理语句处理,给出错误提示,效果如图:
try:
num = int(input("请输入整数:"))
result = 8 / num
print(result)
except ValueError:
print("请输入正确的整数")
except ZeroDivisionError:
print("除 0 错误")
except Exception as result:
print("未知错误 %s" % result)
else:
print("正常执行")
finally:
print("执行完成,但是不保证正确")