Python异常处理

个人学习笔记,欢迎借鉴

异常处理:程序停止执行并提出错误信息,抛出(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异常处理语句处理,给出错误提示,效果如图: 

image.png

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("执行完成,但是不保证正确")

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值