• 异常与网络编程的四个地址


    异常

    错误发生的信号

    程序一旦出错,如果程序中还没有相应的处理机制,

    那么该错误就会产生一个异常抛出来,程序的运行也会随之终止

    一个异常的三个部分:

    1.异常的追踪信息

    2.异常的类型

    3.异常的值

    异常也分很多种,我们举两个例子来说

    #异常分类
    # 语法异常(这异常在程序执行前就改正)
    try:
        x
    except NameError:
        print('语法异常')
    # 逻辑异常
    try:
        l=[]
        l[1]
    except IndexError:
        print('逻辑问题')

    Exception(万能异常)

    # 万能异常
    try:
    x=0
    y
    print('====>')
    l=[]
    l[1]
    dic={'a':0}
    dic['b']
    except Exception as e:
    print('万能异常123',e)
    # 结果 万能异常123 name 'y' is not defined

    try:
    x=0
    print('====>')
    l=[]
    l[1]
    dic={'a':0}
    dic['b']
    except Exception as e:
    print('万能异常123',e)
    #结果 ====>
    # 万能异常123 list index out of range

    try...else...(else不能单独使用,必须与except连用)

    在被检测的代码块没有出现任何异常的情况下执行

    #try...else...
    try:
        print('我没有异常')
    except Exception:
        print('万能异常')
    else:
        print('海草,海草,海草 浪花里舞蹈')

    try...finally..

    无论有没有异常发生,都会执行

    #try..finally
    try:
        x = 0
        print('====>')
        l = []
        l[1]
        dic = {'a': 0}
        dic['b']
    except Exception:
        print('万能异常123')
    finally:
        print('大大大,大哥别杀我')

    主动触发异常

    raise

    # raise NameError
    class Peopel:
        def __init__(self,name):
            if not isinstance(name,str):
                raise TimeoutError('%s必须是str类型'%name)
            self.name=name
    p=Peopel(123)

    断言

    # 断言
    print('part1........')
    stus=['egon','alex','wxx','lxx']
    # stus=[]
    
    
    if len(stus) <= 0:
        raise TypeError
    assert len(stus) > 0
    
    print('part2.........')
    print('part2.........')
    print('part2.........')
    print('part2.........')
    print('part2.........')
    print('part2.........')

    自定义异常

    # 自定义异常
    class RegisterError(BaseException):
        def __init__(self,msg,user):
            self.msg=msg
            self.user=user
    
        def __str__(self):
            return '<%s:%s>' %(self.user,self.msg)
    
    raise RegisterError('注册失败','teacher')

    网络编程

    1.C/s,B/s架构

    client<---->server

    browser<---->server

    学习socket编程就是要编写一个客户端软件和服务端软件

    然后实现服务端与客户端基于网络通信

    2.什么是网络?

    1.物理连接介质

    2.互联网协议

    互联网协议就是

    osi七层协议

    物理层功能:主要是基于电器特性发送高低电压(电信号),高电压对应数字1,低电压对应数字0

    数据链路层:以太网

    • 一组电信号构成一个数据包,叫做‘帧’
    • 每一数据帧分成:报头head和数据data两部分
    • mac地址:每块网卡出厂时都被烧制上一个世界唯一的mac地址

     网络层 ip地址

    传输层 端口

    用户层 软件

    我就可以通过mac+lp+端口,就可以定位世界上任意一个独一无二的软件

  • 相关阅读:
    SQL:分析函数、排名函数、聚合函数配合窗口函数 OVER 的用法
    SQL:MySQL 中各子句的执行逻辑过程
    SQL:CASE 表达式应用总结
    SQL:BLOB 和 TEXT
    SQL:char 和 varchar、binary 和 varbinary、二进制字符串、严格模式、汉字编码方式
    大数据:数据质量
    大数据:存储和成本管理
    大数据:计算管理
    jQuery.validate.js笔记
    Vistual Studio 条件编辑应用
  • 原文地址:https://www.cnblogs.com/yftzw/p/8876587.html
Copyright © 2020-2023  润新知