异常处理

异常处理

什么是异常?

程序在运行过程中出现了不可预知的错误,并且该错误没有对应的处理机制,那么就会以异常的形式表现出来,并造成的影响就是整个程序无法再正常运行。

异常的结构

1.异常的类型:NAMEERROR

2.异常的信息:name 'fasada' is not defined

3.异常的位置:Traceback (most recent call last): File "D:/python学习笔记总结/day29/异常处理.py", line 1, in <module>

异常的种类(两大类)

1.语法错误:是你程序立刻就能解决的,这种错误不能被容忍,语法上的错误发现之后应该立马解决。

2.逻辑错误:这种错误时可以被容忍的,因为一眼看不出来,针对逻辑上的错误,可以采用异常处理机制进行捕获。

常见的错误类型

NAMERROR   :名字错误

SyntaxError    :语法错误

KeyError         :键不存在

ValueError      :值错误

IdexError        :索引错误

如果避免异常处理

  在你认为可能会出现bug的代码上方try一下:注意try内部的代码块越少越好

try:
        可能出错的代码
except  出错的类型  as  e : #将报错信息赋值给变量e
        出错之后的处理机制
try :
    name
    l = [1,2,3]
    l[111]
    d = {'name':'jason'}
    d['password']
except NameError:
    print('名字错误')
except IndexError:
    print('索引错误')
except KeyError:
    print('键不存在')
"""
错误发生之后,会立刻停止代码的运行,执行except语句,比对错误类型
"""
万能异常捕获
try :
    name
    l = [1,2,3]
    l[111]
    d = {'name':'jason'}
    d['password']
except BaseException:  # 万能异常,所有的异常类型都被捕获
    print('老子天下无敌')
#finally

try :
    name
    l = [1,2,3]
    l[111]
    d = {'name':'jason'}
    d['password']
except BaseException:
    print('老子天下无敌')
else:
    print('被检测的代码没有任何的异常发生,才会走else')
finally:
    print('无论代码有内有异常发生,都会在代码运行完毕后执行我')
断言
l  = [1,2,3]
assert len(l) < 0   # 断言  预言
#猜某个数据的状态,猜对了,不影响代码执行,正常走
#猜错了 直接报错
自定义异常
class MyError(BaseException):
    def __init__(self,msg):
        super().__init__()
        self.msg =msg
    def __str__(self):
        return '<sadsaadas%sdaada>' % self.msg

raise MyError('我自己定义的异常')  # 主动抛出异常就是将异常类的对象打印出来,会走__str__方法

 

转载于:https://www.cnblogs.com/wangnanfei/p/11321746.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值