MSCBSC 移动通信论坛
搜索
登录注册
网络优化工程师招聘专栏 4G/LTE通信工程师最新职位列表 通信实习生/应届生招聘职位
 

  • 阅读:2124
  • 回复:0
PYTHON学习笔记【异常简介】
细阿哥
初级会员
鎵嬫満鍙风爜宸查獙璇


 发短消息    关注Ta 

积分 480
帖子 96
威望 4271 个
礼品券 15 个
专家指数 0
注册 2009-2-25
专业方向  通信
回答问题数 1
回答被采纳数 0
回答采纳率 0%
 
发表于 2019-10-31 15:50:10  只看楼主 

1     异常简介

捕获异常try...except...

1

try:
   
print(a)
    i =
1/0    # 如果前面出现异常,拋出错误,本行没有执行
except (NameError, ZeroDivisionError) as e:#捕获多个异常
   
print("出现异常:%s"%e)

输出:

出现异常:name 'a' is not defined

 

2

f=None
try
#从本行开始捕获异常
   
f = open("text.txt")
   
try:
        content = f.read()
        content.index(
"hadoop")
   
except Exception as ex:  # 捕获所有异常
       
print(ex)
except FileNotFoundError as ex:  # 捕获文件不存在的异常
   
print(ex)
else:#没有异常的情况会自动执行的代码
   
print("没有异常的情况会自动执行的代码")
finally# 最终要执行的代码,不管前面是否出现 异常
   
print("关闭文件")
   
if f:
        f.close()

 

3,异常的传递

 

f=None
try
#从本行开始捕获异常
   
f = open("text.txt")
   
try:
        content = f.read()
        content.index(
"hello")
        i =
1/0
   
except ValueError as ex:  # 捕获ValueError异常,未捕获除0异常,传递给外层捕获
       
print(ex)
except (FileNotFoundError,ZeroDivisionError) as ex:  # 捕获文件不存在和除0的异常,最外层没有捕获,则由python捕获
   
print(ex)
else:
   
print("没有异常的情况会自动执行的代码")
finally# 最终要执行的代码,不管前面是否出现异常
   
print("关闭文件")
   
if f:
        f.close()

 

自定义异常

 

class PassWordException(Exception):  # 自定义异常的类
   
def __init__(self, password, min_length):
       
self.password = password
       
self.min_length = min_length

   
def __str__(self):
       
return "%s密码错误,密码最小长度为%s"%(self.password,self.min_length)

def reg(username,password):
   
if len(password)<6:
       
raise PassWordException(password,6# 抛出自定义的异常
   
else:
       
print("用户名:%s,密码%s"%(username,password))

try:
    reg(
"ZhangSan","123")
except FileNotFoundError as e:  # 两个except会按照顺序先执行第一个,如果第一个满足异常类型,不会执行后面的except
   
print("第一个except,FileNotFoundError:%s" % e)
except PassWordException as e:
   
print("第二个except,PassWordException:%s" % e)
except Exception as e:
   
print("第三个except,Exception:%s" % e)

 


微信扫描分享本文到朋友圈
微信扫描二维码,手机阅读更便捷
每天分享朋友圈可获得威望奖励(前两次)

对本帖内容的看法? 我要点评

 
[充值威望,立即自动到帐] [VIP贵宾权限+威望套餐] 另有大量优惠赠送活动,请光临充值中心
充值拥有大量的威望和最高的下载权限,下载站内资料无忧

快速回复主题    
标题
内容
 上传资料请点左侧【添加附件】



当前时区 GMT+8, 现在时间是 2019-12-10 11:24:30
渝ICP备11001752号  Copyright @ 2006-2016 mscbsc.com  本站统一服务邮箱:mscbsc@163.com

Processed in 0.036631 second(s), 13 queries , Gzip enabled
TOP
清除 Cookies - 联系我们 - 移动通信网 - 移动通信论坛 - 通信招聘网 - Archiver