zoukankan      html  css  js  c++  java
  • 异常与网络编程

    new 和init的区别

    __new__比__init__先执行,其作用是创建一个空的类对象

    作为一个类对象:必须具有三个组成部分

    所以调用type中的__new__来完成组装

    得到这个类对象后需要将其返回,以供__init__来使用

    异常:

    程序中无法按照逻辑顺序执行完全部代码,抛出的错误称之为异常

    当异常发生时,解释器会打印异常详细信息,并且终止程序的执行

    排查错误,

    1.定位到错误发生的位置:

    查看追踪信息

      如果代码为自己写的未调用任何内置模块或方法,错误位置在最后一行

      代码调用其他模块

        内置模块则是自己的错误

         别人写的有可能出错需要查看

    2.查看异常类型

    3.查看异常的值

    异常的三个组成部分

    追踪信息

    异常类型

    异常的值

    异常一旦发生就会终止程序,对于用户体验极差需要处理

    异常可以由发生的时间分为两类

    1.语法检测异常:

      解释器会在执行代码前先检测语法,通过才会执行,发生异常则不会执行任何代码

      语法错误和缩进错误

    2.运行时异常:

      已通过语法检测,解析执行期间发生的异常

     python中不同的异常可以用不同的类型去标识,一个异常标识一种错误

    AttributeError属性错误

    IOError 输入输出异常,无法打开文件

    ImportError 无法引入模块或包,基本上是路径问题或名称错误

    IndentationError 语法错误,代码未对齐

    IndexError 索引越界

    KeyError访问字典不存在的键

    keyboardInterrupt Ctrl+C被按下

    NameError 使用一个未被赋予对象的变量

    SyntaxError 语法错误

    TypeError 传入对象与要求不符合

    UnboundLocalError 试图访问一个还未被设置的局部变量

    ValueError传入一个调用者不期望的值

    .

     1 ArithmeticError
     2 AssertionError
     3 AttributeError
     4 BaseException
     5 BufferError
     6 BytesWarning
     7 DeprecationWarning
     8 EnvironmentError
     9 EOFError
    10 Exception
    11 FloatingPointError
    12 FutureWarning
    13 GeneratorExit
    14 ImportError
    15 ImportWarning
    16 IndentationError
    17 IndexError
    18 IOError
    19 KeyboardInterrupt
    20 KeyError
    21 LookupError
    22 MemoryError
    23 NameError
    24 NotImplementedError
    25 OSError
    26 OverflowError
    27 PendingDeprecationWarning
    28 ReferenceError
    29 RuntimeError
    30 RuntimeWarning
    31 StandardError
    32 StopIteration
    33 SyntaxError
    34 SyntaxWarning
    35 SystemError
    36 SystemExit
    37 TabError
    38 TypeError
    39 UnboundLocalError
    40 UnicodeDecodeError
    41 UnicodeEncodeError
    42 UnicodeError
    43 UnicodeTranslateError
    44 UnicodeWarning
    45 UserWarning
    46 ValueError
    47 Warning
    48 ZeroDivisionError
    异常

    如果错误发生的条件是可预知的需要用if进行处理,在错误发生之前预防

    发生的条件不可预知,需要用到try...except:错误发生后处理

    异常处理格式有

    try...except...

    try...except...except...

    try...except...else...

    try...except...finally...

    C/S架构的软件是基于网络进行通信的

    网络的核心即一对协议,想要开发基于网络通信的软件,就必须遵循这些标准

    互联网协议的功能:定义计算机如何接入Internet,以及接入Internet的计算机通信的标准

    osi七层协议:应用层,传输层,网络层,网络接口层,应用层分为应用层,表示层会话层,网络接口层分为数据链路层,物理层

    物理层功能:主要是基于电气特性发送高低电压(电信号),高电平1,低电平0

    数据链路层:单纯地电信号0或1毫无意义,必须规定电信号多少位一组,魅族什么意思,

    数据链路层的功能就是定义了电信号的分组方式

    以太网协议:ethernet规定

    一组电信号构成一个数据包,叫做帧

    每一数据帧分成:报头head和数据data两部分

    head包含(固定18个字节)

      发送者/源地址:6个字节

      接收者/目标地址:6个字节

      数据类型,6个字节

    data包含:(最短46,最长1500字节)

      数据包的具体内容

    head长度+data长度 = 最短64字节,最长1518字节,超过最大限制就分片发送

    mac地址:

    head中包含的源和目标地址由来:ethernet规定接入Internet的设备都必须具备网卡,发送端和接收端的地址便是指

    网卡的地址,即mac地址

    mac地址:每块网卡出厂时都被烧制上世界上唯一的mac地址,长度为48位2进制,通常由12位16进制数表示,前六位

    是厂商编号,后六位是流水线号

    广播:有mac地址,同一网络的两台主机就可以通信(一台主机通过arp协议获取另外一台主机的mac地址)

    ethernet采用最原始的方式,广播的方式进行通信

  • 相关阅读:
    Windows 10 将MySQL5.5升级为MySQL5.7
    Django Rest Swagger生成api文档
    inception安装使用
    django 日志配置
    构建NTP时间服务器
    django 模型关系
    python 开发环境配置
    mongodb远程备份
    rest framework 尝鲜
    Django Rest Framework-介绍
  • 原文地址:https://www.cnblogs.com/suncunxu/p/10148784.html
Copyright © 2011-2022 走看看