面向对象之异常处理等相关内容-28

1.异常处理

"""
1、什么是异常
  异常是错误发生的信号,一旦程序出错就会产生一个异常
  如果该异常没有被处理,该异常就会被抛出来,程序的运行随即终止

  异常是由三部分组成
      1、具体哪一行代码抛出的异常
      2、异常的种类
          NameError:变量名没有定义过
          IndexError:索引不存在
              l=[11,22]
              l[100]
          KeyError
              d={"k1":11}
              d["k2"]

          AttributeError:对象属性不存在
              对象.属性

          ValueError:
              int("asdf")

          TypeError:
              "asdf"+1111

          ZeroDivisionError
              1/0
      3、异常的内容信息

2、为何要处理异常
  为了增强程序的健壮性

3、如何处理异常
  1、针对语法的错误:应该在程序运行前立即改正
  2、针对逻辑错误:
      2.1 如果逻辑错误发生的条件是可以预知的,应该if判断解决,预防异常
          age = input('>>: ').strip()
          if age.isdigit():
              age=int(age)
              if age > 18:
                  print('too big')
              elif age < 18:
                  print('too small')
              else:
                  print("got it")
          else:
              print('必须输入数字')
      2.2 如果逻辑错误发生的条件是不可预知的,那么异常一个会发生,考虑到程序的健壮性
          我们应该处理异常,做好补救措施
          try:
              代码块
          except 异常的类型:
              发生异常后要执行的代码

"""


# 例1
# try:
#     print("====>111")
#     print("====>222")
#     xxx
#     print("====>333")
# except AttributeError as e:
#     print(e)
#
# print('====>4')

# 例2
# try:
#     print("====>111")
#     print("====>222")
#     xxx
#     print("====>333")
# except NameError as e:
#     print(e)
#
# print('====>4')

# # 例3
# try:
#     print("====>111")
#     print("====>222")
#     # xxx
#     # l=[]
#     # l[0]
#     dic={}
#     dic["k1"]
#     print("====>333")
# except (NameError,IndexError) as e:
#     print("=---->",e)
# except KeyError as e:
#     print(e)
#
# print('====>4')

# # 例4
# try:
#     print("====>111")
#     print("====>222")
#     xxx=111
#     # l=[]
#     # l[0]
#     dic={}
#     # dic["k1"]
#     print("====>333")
# except (NameError,IndexError) as e:
#     print("=---->",e)
# except KeyError as e:
#     print(e)
# finally:
#     print("一定会运行")
# print('====>4')
# # print(xxx)


# # 例4
# try:
#     print("====>111")
#     print("====>222")
# finally:
#     print("一定会运行")
# print('====>4')
# # print(xxx)

# # 例5
# try:
#     print("====>111")
#     print("====>222")
#     # xxx
#     l=[]
#     # l[0]
#     dic={}
#     dic["k1"]
#     print("====>333")
# except Exception as e:
#     print("万能异常",e)
# print('====>4')

# 例6
# print('==>11')
# raise NameError("变量名未定义")
# print('==>222')


# class Animal:
#     def speak(self):
#         raise BaseException("小垃圾必须实现speak方法来覆盖")
#
#     def run(self):
#         raise BaseException("小垃圾必须实现run方法来覆盖")
#
#
# class Dog(Animal):
#     pass
#
# class Pig(Animal):
#     pass
#
#
# d=Dog()
# p=Pig()
#
# d.speak()
# d.run()

# p.speak()
# d.run()

# 例7
# class Interface(BaseException):
#     def __init__(self, msg, x, y, z):
#         self.msg = msg
#         self.x = x
#         self.y = y
#         self.z = z
#
#     def __str__(self):
#         return "<%s:%s:%s:%s>" % (self.msg,self.x,self.y,self.z)
#
#
# raise Interface("接口异常", 11, 22, 33)

# 例8:

print("====1")
print("====2")
print("====3")
salaries=[1.1,2.2]

# if len(salaries) != 3:
#     raise NameError
assert len(salaries) == 3

print(salaries[2])
print(salaries[2])
print(salaries[2])
print(salaries[2])
print(salaries[2])
print(salaries[2])
print(salaries[2])
print(salaries[2])
print(salaries[2])
print(salaries[2])
print(salaries[2])
print(salaries[2])

2.套接字编程引入

"""
1、什么是socket
  网络基础=》socket
2、为何要学习socket编程:
  基于socket开发一个C/S或者B/S结构的软件
      Client---------网络------------Server
      Browser--------网络------------Server

3、如何基于socket编程

  网络:https://www.cnblogs.com/linhaifeng/articles/5937962.html


  网络是什么=底层的物理连接介质+互联网通信协议
      OSI七层协议

  网络存在的意义=》通信

4、OSI七层协议
"""

 

posted @ 2020-08-17 09:43  投降输一半!  阅读(170)  评论(0编辑  收藏  举报