异常处理与网络协议

Posted 道长

tags:

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

一 异常处理:

     1异常:错误发生的信号,程序一旦出错程序中没有相应的处理机制,就会抛出异常,终止程序

  一个异常的三部分:

            追踪信息,
            异常的值,
            异常类型,

二   异常的分类:
        1语法异常:
               这类异常在程序运行之前就改正,否则程序无法运行。
        2逻辑异常:常见异常类型:

Indexerror,Keyerror,Attributeerror,
FileNotFoundError,
Valueerror,Typeerror,IndexError
Nameerror:名字没有定义

 

l=【1,2】
l【23424】搜索超出范围
4 try:
print(\'start..\')
x=1
y
l=[]
l=[3]
print(\'=====\')
except NameError:判断错误是否是NameError,
print(\'名字没有定义\')
except KeyError:

 

可以有多个except判断:
在except匹配成功之后执行except之后的代码,
那么这样写的话就会显得很长所以我们有另一种方法:
except(NameError,KeyError):里面是一个或的关系。
print(‘变量名或字典的key,’)

5 万能异常:

try:
。。。
;;;
。。。
except Exception:万能异常,可以处理一切异常,但是如果想要看到异常信息需要和as一起使用,把他赋给随便一个变量,在打印出变量。
except Exception:
print(‘万能异常!!!’)这个时候你不知道到底是什么异常,所以我们需要用一个as语法。
except Exception as e:使用as语法把他赋给给一个值,然后再打印出来就可以看到异常的信息。
print(‘万能异常————》’,e)
所有的异常你都想用一种逻辑去处理,那就用万能异常,

 

6  try:。。。与else:。。。连用。

try:
,,,,,
;;;
。。。
else:else不能单独使用,必须跟except Exception:
print(‘万能异常!!!’)这个时候你不知道到底是什么异常,所以我们需要用一个as语法。
except Exception as e:使用as语法把他赋给给一个值,然后再打印出来就可以看到异常的信息。
print(‘万能异常————》
在这些后面,一起使用。
else:
print(’被检测的代码块,没有任何异常才会执行else的子代码块‘)

 

7 try。。。finally。。。

finally:有用。。。可以放回收系统资源f.close
print(’无论有没有异常都会运行,无论异常有没有被处理都会执行‘)
try:
f=open(\'a.txt\',\'w\',encoding=\'utf-8\')
f.read()
f.close
exception NameError
print(\'名字错误\')
这种情况下我们的文件在以写的方式打开时,不能进行读取操作,
所以会报错,程序结束,那么文件f.close并没有运行,所以
这个时候就用到了finally,在finally下面来放这个关闭文件的操作。

 

8 主动触发异常:
raise TypError(’类型错误内容‘),在这里TypeError就是类。

9 断言:

print(\'part1.....\')
stus=[\'egon\',\'alex\',\'lxx\']    
if len(stus)=<0:
raise TypError(\'stus内值的个数必须大于0,后续的代码才会运行\')
可以用一行取代if及自带吗上面的代码
assert len(stus)>0 断言stus长度大于0,如果成立程序继续运行,否则抛出错误,

print(\'part2,,,,\')
print(\',,,,\')
print(\',,,,\')
print(\',,,,\')
print(\',,,,\')

 

10 自定义异常:

class RegisterError(BaseException):继承BaseException
def __init__(self,msg,user):
self.msg=msg
self.user=user
def __str__(self):
return (\'%s %s\'%(self.msg,self.user))
raise RegisterError(’注册失败‘,’teacher‘)
定制自己的异常,可以定制抛出的信息。

 

11 什么时候用异常:
当你错误发生的条件是可以预知的,可以直接用if判断就解决了,
当发生的错误是没办法预知的,但是他一定会出现,只能用try:excep。。。

 

三  socker网络编程:

C/S架构:client<--------->server

B/S架构:browser<---------->server

学习socker编程就是要编写一个客户端软件与服务端软件。

然后实现服务器与客户端基于网络通讯。

1 什么是网络:

      1物理连接介质

      2 互联网协议:

          互联网协议就是统一的标准,互联网协议就像计算机界的英语。

四  网络协议:

参考:博客

 

以上是关于异常处理与网络协议的主要内容,如果未能解决你的问题,请参考以下文章

使用实体框架迁移时 SQL Server 连接抛出异常 - 添加代码片段

dns配置异常怎么处理

异常和TCP通讯

CPNtools协议建模安全分析---实例变迁标记

PCL异常处理:pcl 1.8.13rdpartyoostincludeoost-1_64oost ypeofmsvc ypeof_impl.hpp(125): error(代码片段

使用片段中的处理程序时出现非法状态异常