Python学习14--错误和异常/Try_except

一、异常的概念

错误:在程序的编译期就出现的
异常:在程序的运行期,是因为程序没有按照正常或者期望方式执行

【异常产生的时候,程序处理的处理方式】:
在异常放生的位置,程序会创建异常类型的对象,“暂停”程序,从上下文中想寻找有没有异常处理
的程序,如果有异常处理,那么会进入到异常处理程序(try except)。
如果没有异常处理,那么异常会向上传播

【异常的向上传播】:
如果异常是在函数中产生,会传播给函数的调用者
如果异常是在模块的顶级位置产生,会传播给引用这个模块的模块
如下所示:

def a():
    return 1/0
def b():
    a()
def c():
    b()
def d():
    c()

输出的报警为:

 File "E:/new.py", line 10, in <module>
    d()
  File "E:new.py", line 8, in d
    c()
  File "E:/new.py", line 6, in c
    b()
  File "E:/new.py", line 4, in b
    a()
  File "Enew.py", line 2, in a
    return 1/0
ZeroDivisionError: division by zero

二、异常的常见类型

BaseException 所有异常类的父类 基类
Exception 是BaseException的子类 处理普遍异常的相关代码

print(issubclass(Exception,BaseException))

输出:

True

1、ZeroDivisionError:除数为0的异常

print(1/0)

输出:

ZeroDivisionError: division by zero

2、NameError:名字错误异常,到命名空间中搜索对应名字,找不到会报NameError

print(a)

输出:

NameError: name 'a' is not defined

3、TypeError:类型不匹配,引用数据类型不一致

print("a"+1)

输出:

TypeError: must be str, not int

4.AttributeError:属性异常

class A:
    def __init__(self):
        pass
print(A.a)

输出:

AttributeError: type object 'A' has no attribute 'a'

5、IndentationError: 缩进异常

def a():
print(
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值