day8 (异常处理和网络编程)

Posted xingguolv

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了day8 (异常处理和网络编程)相关的知识,希望对你有一定的参考价值。

一、异常处理

#1 什么是异常?
# 异常是错误发生的信号,一旦程序出错,就会产生一个异常,应用程序未处理该异常,
# 异常便会抛出,程序随之终止

#2、常见异常类型
#I:语法错误应该在程序运行前修正
# if 1 >2
#     print(‘xxxxx‘)

#II:逻辑错误
#x
#NameError: name ‘x‘ is not defined


# l=[]
# l[10000] #IndexError


# class Foo:
#     pass
# Foo.x #AttributeError:


# k={‘x‘:1}
# k[‘y‘] #KeyError


# 1/0 #ZeroDivisionError


# for i in 3: #TypeError:
#     pass


# age=input(‘>>: ‘)
# age=int(age)  #ValueError


#3、如何处理异常
print(====>start<=====)

try:
    l=[]
    print(l[1111])
    print(====>1)
    print(====>2)
    print(====>3)
except IndexError:    #捕捉Indexerror错误,当匹配到该类型的错误时会出发except代码块的执行,然后继续执行except后面的代码!,若没有匹配到,代码就不会执行except代码块
    pass

print(====>end<=======)



print(====>start<=====)
try:
    l=[]
    print(l[1111])
    print(====>1)
    print(====>2)
    print(====>3)
except IndexError as e:  #as e 的作用是把异常的值传给e
    print(===>,e) #list index out of range

print(====>end<=======)




print(====>start<=====)
try:
    l=[]
    #print(l[1111])
    print(====>1)
    d={}
    d[k]
    print(====>2)
    print(====>3)
except IndexError as e:
    print(===>,e)
    print(1111)
except KeyError as e:    #except可以接多个 当捕捉到异常后,异常的代码和匹配的except之间的代码不会执行,然后接着执行匹配到的except之后的代码!!
    print(----,e)


print(====>end<=======)



print(====>start<=====)
try:
    l=[]
    # print(l[1111])
    print(====>1)
    d={}
    d[k]
    print(====>2)
    print(====>3)
except IndexError:
    pass
except KeyError:
    pass
except Exception as e:  #万能异常捕捉
    print(万能异常--->,e)

print(====>end<=======)



print(====>start<=====)
try:
    l=[]
    #print(l[1111])
    # print(‘====>1‘)
    d={}
    # d[‘k‘]
    # print(‘====>2‘)
    # print(‘====>3‘)
except IndexError:
    pass
except KeyError:
    pass
except Exception as e:
    print(万能异常--->,e)
else:    #当没有异常发生的时候执行
    print(没有异常发生的时候触发)
#没有异常发生的时候触发
finally:  #有没有异常都触发
    print(有没有异常都触发)
    #有没有异常都触发

print(====>end<=======)



‘‘‘
try:
    conn=connect(‘1.1.1.1‘,3306)
    conn.execute(‘select * from db1.t1‘)
finally:
    conn.close()
‘‘‘

# stus=[‘egon‘,‘alex‘,‘wxxx‘]
ip_list=[
    # ‘1.1.1.1:8080‘,
    # ‘1.1.1.2:8081‘,
    # ‘1.1.1.3:8082‘,
]

# if len(ip_list) == 0:
#     raise TypeError   #主动触发异常
assert len(ip_list) > 0   #当不满足条件时触发异常 (断言失败触发异常)
#AssertionError

# print(‘从ip_list取出ip地址,验证可用性‘)



class MyException(BaseException):   #自定义异常类型
    def __init__(self,msg):
        super(MyException,self).__init__()
        self.msg=msg

    def __str__(self):
        return <%s> %self.msg   #__str__ 的返回值必须是str类型

raise MyException(类型错误) #异常的值:print(obj)   会打印 MyException(‘类型错误‘) (打印对象)
#__main__.MyException: <类型错误>

#异常处理是在异常一定会发发生但是有不可以用代码处理的情况下使用的

 

二、socket编程

     1、网络基础

    http://www.cnblogs.com/linhaifeng/articles/5937962.html

 

以上是关于day8 (异常处理和网络编程)的主要内容,如果未能解决你的问题,请参考以下文章

day8 网络编程 接口开发 异常处理

day8 异常处理

DAY8 - 异常处理,面向对象编程

python基础学习日志day8-异常处理

python学习道路(day8note)(抽象类,类的方法,异常处理,socket编程)

day8 socket socketserver 异常 断言