异常介绍/异常处理/互联网协议

一、什么是异常?

异常是错误发生的信号,程序一旦出错,如果程序中还没有相应的处理机制,那么该错误就会产生一个异常抛出来,程序的运行也随之终止。

二、一个异常分为三部分

1.异常的追踪信息

2.异常的类型

3.异常的值

三、异常的分类

  1、语法异常:

这类异常应该在程序执行前就改正
     print('start...')
     x=1
     x+=1
     if:
     print('stop...')

index error 2、逻辑上的异常: l=['a','b'] l[100000]
多分支异常
语法 try: print('start...') x=1 y l=[] l[3] d={'a':1} d['b'] print('end...') except (NameError,KeyError,IndexError): print('变量名或者字典的key或者列表的索引有问题') 保证这段代码不让程序结束掉
print('other')
万能异常(解决一切异常的方法)
try:
    print('start...')
    x=1
    y
    l=[]
    l[3]
    d={'a':1}
    d['b']
    print('end...')
except Exception:
    print('变量名或者字典的key或者列表的索引有问题')

  

万能异常
try:
    print('start...')
    x=1
    y
    l=[]
    l[3]
    d={'a':1}
    d['b']
    import os
    os.aaa
    print('end...')
except Exception as x:
    print('变量名或者字典的key或者列表的索引有问题',x)

异常的值,最有价值的是异常的值 

======================================================================================================

异常的其他结构

try:
print('start...')
except Exception as e:
print('万能异常...')

else:
print('在被检测的代码块没有出现任何异常的情况下执行')
finally:
print('无论有没有异常发生,程序都会执行')
当涉及到资源方面问题,最好用finally,涉及到回收系统的资源

else写完再写finally
try可以直接和finally
try可以不可以和else连用
主动触发异常
raise TypeError('类型错误')
class People:
    def __init__(self,name):
        if not isinstance(name,str):
            raise TypeError('%s必须是字符串类型'%name)

        self.name=name
p=People(123)

断言(未理解)

自定义异常(未理解)

总结

异常处理,当错误发生的条件是可以预知的,这时候用if判断,实在不可预知用异常处理

猜你喜欢

转载自www.cnblogs.com/wangmiaolu/p/8876760.html