标签:else 情况下 oid server elf 捕获异常 trace image 数据
一、什么是异常?
程序在运行过程中出现了不可预知的错误,并且该错误没对应的处理机制,那么就会以异常的形式表示出来,
造成的影响就是整个程序无法再正常的运行,抛出异常。
二、异常的结构:
1:异常的类型:NameError
2:异常的信息:name ‘sys‘ is not defined
3:异常的位置:File "E:/PY/异常处理机制.py", line 1, in <module>
三、异常的两类:
1:语法错误:
是程序就显示提示的错误,应该立即解决,这种错误是不能容忍的
2:逻辑错误:
这种错误一般是一眼看不出来的,是可以被容忍的,针对逻辑上的错误,是可以采用异常处理机制进行捕获的
四、常见的错误类型:
名字错误:NAMERROR
键不存在:KeyError
值错误:ValueError
索引错误:IndexError
语法错误:SyntaxError
......
五、如何避免?
异常处理:在认为可能会出现bug的代码块上方用 try一下,要注意的是try 里的内容越少越好:
异常处理机制的固定语法:
try:
可能出错的代码
.......
except 出错的类型 as e: # 将报错的信息赋值给变量e
>>出错后的处理机制
六、python常用的内置异常:
所有异常的超类:BaseException
BaseException是所有内置异常的基类,但用户定义的类不能直接继承BaseExpxeption,所有的异常类都是从Exception继承,且都在exceptions模块中定义.
class MyError(Exception): def __init__(self,msg): self.msg= msg def __str__(self): return self.msg try: raise MyError("类型的错误!") except MyError as e: print("my exception occurred",e.msg) >>> my exception occurred 类型的错误!
七、异常的捕获:
python的异常捕获常用try...except...结构,把可能发生错误的语句放在try模块里,用except来处理异常,每一个try,都必须至少对应一个except。此外,与python异常相关的关键字主要有:
try/except 捕获异常并处理
pass 忽略异常
as 定义异常实列(except MyError as e)
else 如果Try 中的语句没有引发异常,则会执行else中的语句
finally 无论是否出现异常,都执行的代码
raise 抛出/引发异常
万能异常:
try: <语句> except Exception: print(‘异常说明‘)
raise主动触发异常:
raise [Exception [, args [, traceback]]]
八、基于UDP协议的socket
udp协议是无连接的,启动服务后可以直接接受消息,不需要提前建立连接
UDP的特点:
数据报协议(自带报头),所以客户端发送的内容可为空,报头里自带一部分的内容
没有双向通道,通信类似于发短信
1:udp协议客户端允许发空
2:udp协议不会黏包
3:udp 协议服务端不存在的情况下,客户端照样不会报错;
4:usp 协议支持并发
可以用代码来验证以上四点特点
并发概念:看起来像同时运行(客户端看似在同时访问,其实是有时间的间隔,只是比较短)
并行概念:真正意义上的同时运行
UDP协议类似于发短信
TCP协议类似于打电话
黏包现象只发生在tcp协议中:
1.从表面上看,黏包问题主要是因为发送方和接收方的缓存机制、tcp协议面向流通信的特点。
2.实际上,主要还是因为接收方不知道消息之间的界限,不知道一次性提取多少字节的数据所造成的
九、socketserver 模块
利用socketserver模块,可以解决TCP协议下的黏包问题
重点;
用tcp实现
上传文件下载文件的操作
标签:else 情况下 oid server elf 捕获异常 trace image 数据
原文地址:https://www.cnblogs.com/Gaimo/p/11321138.html