• 面向对象之异常处理等相关内容-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七层协议
    """

     

  • 相关阅读:
    redis 源码阅读 数值转字符 longlong2str
    redis 源码阅读 内部数据结构--字符串
    redis 查看的版本
    redis 配置
    redis 基础
    redis 安装
    git 中关于LF 和 CRLF 的问题
    git 常用命令
    linux svn 服务端搭建
    测试开发之Django——No8.Django中的视图与URL配置
  • 原文地址:https://www.cnblogs.com/usherwang/p/13515900.html
Copyright © 2020-2023  润新知