码迷,mamicode.com
首页 > 编程语言 > 详细

python学习第31天之异常处理、网络编程part1

时间:2018-11-01 22:31:58      阅读:226      评论:0      收藏:0      [点我收藏+]

标签:http   增强   部分   分享图片   语法   rod   没有   other   一起   

一,异常处理

1. 什么是异常处理
异常是错误发生的信号,一旦程序出错就会产生一个异常,如果该异常
没有被应用程序处理,那么该异常就会抛出来,程序的执行也随之终止

异常包含三个部分:
(1). traceback异常的追踪信息
(2). 异常的类型
(3). 异常的信息

2. 为何要异常处理

避免程序因为异常而崩溃,所以在应用程序中应该对异常进行处理,从而增强程序的健壮性

3. 如何异常处理

错误分为两大类:
(1). 语法上的错误:在程序运行前就应该立即修正
(2). 逻辑上的错误

try:
    代码1
    代码2
    代码3
    ......
except NameError:
    当抛出的异常是NameError时执行的子代码块
except ....:
    pass
except ...:
    pass
else:
    pass
finally:
    pass

1、常见的逻辑错误导致的异常

 print(adsfsadf

# age=input(>>: ).strip()
# print(age > 10) #TypeError

# for i in 10: #TypeError
#     pass

# import os
# os.xxx #AttributeError

# 1 / 0 #ZeroDivisionError:

# print(=====1)
# print(=====2)
# print(=====3)
# l=[1,2,3]
# l[1000] #IndexError
# print(=====4)
# d={x:1,y:2}
# d[z] #KeyError
# print(=====5)

2. 异常处理

(1)异常处理的单分支

try:
#     print(=====1)
#     print(=====2)
#     print(=====3)
#     d = {x: 1, y: 2}
#     d[z]  # KeyError
#     print(=====4)
#     l = [1, 2, 3]
#     l[1000]  # IndexError
#     print(=====5)
# except IndexError:
#     print(IndexError)
#
# print(other code)

(2)异常处理的多分支

try:
#     print(=====1)
#     print(=====2)
#     print(=====3)
#     d = {x: 1, y: 2}
#     d[z]  # KeyError
#     print(=====4)
#     l = [1, 2, 3]
#     l[1000]  # IndexError
#     print(=====5)
# except KeyError as e:
#     print(KeyError,e)
# except IndexError as e:
#     print(IndexError,e)
#
#
# print(other code)
# try:
#     print(=====1)
#     print(=====2)
#     print(=====3)
#     d = {x: 1, y: 2}
#     # d[z]  # KeyError
#     print(=====4)
#     l = [1, 2, 3]
#     l[1000]  # IndexError
#     print(=====5)
# except (KeyError,IndexError) as e:                     写在一起,都能匹配,任何一个匹配到就抛出
#     print(e)
# print(other code)

变量e专门接受异常的值

#1、万能异常类型Exception:可以匹配任意类型的异常

# try:
#     print(=====1)
#     print(=====2)
#     print(=====3)
#     d = {x: 1, y: 2}
#     # d[z]  # KeyError
#     # xxx
#     print(=====4)
#     l = [1, 2, 3]
#     l[1000]  # IndexError
#     print(=====5)
# except IndexError as e:
#     print(IndexError:, e)
# except KeyError as e:
#     print(KeyError:, e)
# except Exception as e:
#     print(Exception:,e)
#
# print(other code)

#2  try... else...的用法

else必须放到后面,else的子代码块会在被检测的代码没有异常的情况下执行

# try:
# print(‘=====1‘)
# print(‘=====2‘)
# print(‘=====3‘)
# d = {‘x‘: 1, ‘y‘: 2}
# # d[‘z‘] # KeyError
# # xxx
# print(‘=====4‘)
# l = [1, 2, 3]
# # l[1000] # IndexError
# print(‘=====5‘)
# except IndexError as e:
# print(‘IndexError:‘, e)
# except KeyError as e:
# print(‘KeyError:‘, e)
# except Exception as e:
# print(‘Exception:‘,e)
# else:
# print(‘else必须放到后面,else的子代码块会在被检测的代码没有异常的情况下执行‘)
# # print(‘other code‘)

#3、try... finally...的作用

无论被检测的代码有没有异常都会执行‘,常用于回收资源的操作

3、自定义异常:

 (1)主动触发异常:raise TypeError (‘类型错误’),强行异常

通常用于资源被无限占用的时候,主动抛出异常。自定义的语法

 print(===>1)
# print(===>2)
# raise TypeError(类型错误)
# print(===>3)
# class People:
#     def __init__(self,name,age):
#         self.__name=name
#         self.__age=age
#
#     def tell_info(self):
#         print(self.__name,self.__age)
#
#     def set_info(self,name,age):
#         if not isinstance(name,str):
#             raise TypeError(名字必须是str类型)
#         if not isinstance(age,int):
#             raise TypeError(年龄必须是int类型)
#         self.__name=name
#         self.__age=age
#
# obj=People(egon,18)      
# # print(obj.__dict__)
# # obj.tell_info()       
#
# obj.set_info(33,‘33’)   比如我们传不符合要求的值就会报错
# obj.tell_info()              

(2)

# class MyException(BaseException):
#     def __init__(self,msg):
#         super().__init__()
#         self.msg=msg
#
#     def __str__(self):          
#         return <%s> %self.msg   专门在打印时候把异常值显示出来
# # raise MyException(我自定义的异常) 打印对象

4、断言

print(上半部分,生产数据)            
l=[1,2,3,4]

# if len(l) != 5:
#     raise TypeError(列表的长度必须为5)
assert len(l) == 5

print(下半部分,处理数据)

if len(l)=assert len(l)

 

二、网络编程part1

1、应用软件的架构
(1).C/S           客户端————服务端
client ==== server

(2).B/S                        
browser === server

在不同的计算机上 一个安装客户端 另一安装服务端 通过网络来通讯

什么是网络通讯?

要完成通讯必须具备的条件
(1).物理连接介质 (网线,WIFI,光纤)
(2).必须遵循相同的标准

在计算机网络中同样需要具备这两个条件
作为应用软件开发者 不需要关心第一步 重点是通讯的标准(通讯的协议)

网络协议:
open system interconnection
OSI七层模型。需要掌握五层的

技术分享图片

 

python学习第31天之异常处理、网络编程part1

标签:http   增强   部分   分享图片   语法   rod   没有   other   一起   

原文地址:https://www.cnblogs.com/ye-hui/p/9892573.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!