异常笔记

1、
一些内置的异常类

类名描述
Exception几乎所有的异常类都是从它派生的
AttributeError引用属性或给它赋值失败时引发
OSError操作系统不能执行指定的任务时引发,有多个子类
IndexError使用序列中不存在的索引时引发,为LookupError的子类
KeyError使用映射中不存在的键时引发,为LookupError的子类
NameError找不到名称(变量)时引发
SyntaxError代码不正确时引发
TypeError将内置操作或函数用于类型不正确的对象时引发
ValueError将内置操作或函数用于这样的对象时引发:其类型正确但包含的值不合适
ZeroDivisionError在除法或球模运算的第二参数为零时引发

2、异常捕捉
如果想要一个except子句捕捉多种异常,可在一个元组中指定这些异常

>>> try:
        x = int(input("Enter the first number: "))
        y = int(input("Enter the second number: "))
        print(x / y)
>>> except (ZeroDivisionError, TypeError, ValueError):
        print("Your number were illegal.")

3、更高效的异常捕捉
有时候没有预测到会出现的异常,可以使用except语句,但不指定任何异常类,就可以捕捉所有异常。

try:
    x = int(input("Enter the first number: "))
    y = int(input("Enter the second number: "))
    print(x / y)
except:
    print("Your number were illegal.")

但是这样捕捉所有异常很危险,这会隐藏没有考虑到的错误。

4、如果只想发出警告,指出情况偏离正轨,可以使用模块warnings中的函数warn

>>> from warnings import warn
>>> warn("I've got a bad feeling about this.")   #警告只显示一次
<string>:1: UserWarning: I've got a bad feeling about this.
>>> warn("I've got a bad feeling about this.")   #再次运行代码什么都不发生
> 

pass

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值