当前位置: 首页 > news >正文

深圳网站建设seo优化网站开发代码规范

深圳网站建设seo优化,网站开发代码规范,html移动网站开发,网站建设云服务器前言 运行中的程序不知道怎么搞的报错了#xff0c;恰好没有处理这个报错#xff0c;程序也随之终止了#xff0c;有没有什么办法能够让程序报错也能够不崩掉继续运行呢#xff1f;答案是有的#xff0c;就是通过异常处理。 什么是异常 异常顾名思义就是不正常#xf… 前言 运行中的程序不知道怎么搞的报错了恰好没有处理这个报错程序也随之终止了有没有什么办法能够让程序报错也能够不崩掉继续运行呢答案是有的就是通过异常处理。 什么是异常 异常顾名思义就是不正常是程序发出错误的信号程序一旦出现错误就会产生异常如果没有处理该异常的话程序就会随之终止。比如以下程序抛出异常 x Traceback (most recent call last): # Traceback追踪回溯异常File stdin, line 1, in module # 定位异常的位置 NameError: name x is not defined # NameError异常的类型异常大致分为两种情况 一种是语法错误SyntaxError语法错误在程序运行前就应该修改属于低级错误~ ifFile stdin, line 1if^ SyntaxError: invalid syntax另一种是逻辑上的错误比如TypeError、NameError、IdenxError等 # TypeError数字类型与字符串类型不能进行计算 1 ’2’# ValueError类型转换的错误 num input(: ) # 比如输入的是python int(num)# NameError引用了一个不存在的名字x x# IndexError索引超出列表的限制 list1 [python,java] l[3]# KeyError引用了一个不存在的key dic{name:python} dic[age]# AttributeError对象属性不存在 class Test:pass Foo.x如何进行异常处理 为了增强程序的健壮性即便是程序运行过程中出错了也不要终止程序。而是捕捉异常并处理将出错信息记录到日志内。 语法错误 语法上出现的错误必须在程序运行前更正。 if True # SyntaxError: invalid syntaxprint(if分支没有加:)逻辑上的错误 逻辑上的错误分为两种情况一种是错误的条件可以预知另一种就是发生错误的条件无法预知。 可以预知发生错的误条件 如果错误的条件可以预知可以通过if判断解决比如 age 18 inp_age input().strip() # 可以预知字符串与数字无法进行大小的比较 if inp_age.isdigit():inp_age int(inp_age)if age inp_age:print(bigger)else:print(error) else:print(请输入数字)无法预知发生错误的条件 在无法预知发生错误的条件的情况下保证程序的可靠性使程序不会崩溃终止就需要对异常进行处理异常处理的基本形式如下 try:需要检查是否会出现异常的代码 except 异常类型 as e: # as将异常的类型赋值给变量e打印e可以知道错误的具体原因如果代码检测出现异常就执行这里的代码如下出现异常的代码可以使用异常处理进行处理 try:print(异常检查开始)print(name)print(异常检查结束) except NameError as e: print(f出现异常了{e}) print(程序没有终止其他代码继续执行)# 上述代码执行结果 异常检查开始 出现异常了name name is not defined 程序没有终止其他代码继续执行如果被检查的代码块中有可能出现不同类型的异常时针对不同类型的异常如果想分别用不同的逻辑处理可以使用多个分支的except类似于多分支的elif语法如下 try:需要检查是否会出现异常的代码 except NameError:检测到NameError时执行的代码 except KeyError:检测到KeyError时执行的代码 except ......比如下述代码 def transfer_int(info):try:res int(info)except ValueErro as e:print(fvalueerror {e})res valueerrorexcept TypeError as e:print(ftypeerror {e})res typeerrorreturn restransfer_info(python) # ValueError: invalid literal for int() with base 10: python transfer_int({x: 1}) # TypeError: int() argument must be a string, a bytes-like object or a number, not dict如果多种异常想用同一种逻辑进行处理可以将多种异常放入元组中用一个except分支进行处理。 try:需要检查是否会出现异常的代码 except (NameError, ValueError, IndexError):代码中出现元组中三种异常时执行这里的代码有小伙伴有疑问了难道我需要把程序运行中可能出现的异常都需要写一遍了也太麻烦了吧。为了方便开发人员处理异常python提供了一种万能异常类型Exception可以捕获所有的异常 try:需要检查是否会出现异常的代码 except (NameError, ValueError, IndexError):代码中出现元组中三种异常时执行这里的代码 except Exception:出现其他类型异常统一使用这里的逻辑比如下述代码 print(start...)try:print(1111111111)l [aaa, bbbb]l[3] # 抛出异常IndexError,该行代码同级别的后续代码不会运行print(2222222222)xxxprint(33333333)dic {a: 1}dic[aaa] # except (IndexError, NameError) as e: # print(异常的信息: , e) # except KeyError as e: # print(字典的key不存在: , e) except Exception as e: # 万能异常print(所有异常都可以匹配的到) print(end....)使用异常处理时后面还可以跟一个else但是else必须跟在except之后不能但粗存在当需要检查的代码没有触发任何异常的情况下就会执行else下的代码块。 try:print(1111111111)l [1,2]print(2222222222222)print(33333333333) except IndexError as e: # 不执行这里的代码块else才会执行print(异常信息,e)# 只有再try内代码没有异常才会执行else else:print(我是else)此外try还可以与finally使用从语法上说finally必须放在else之后但是可以使用try-except-finaally的语法格式也可以直接使用try-finally的格式无论被检测的代码是否出现异常finally后的代码都会正常执行因此finally的代码块中可以做一些系统资源回收的操作比如打开的文件。 print(start...)try:print(1111111111)l [aaa, bbbb]l[3] # 抛出异常IndexError,该行代码同级别的后续代码不会运行print(2222222222)xxxprint(33333333)dic {a: 1}dic[aaa]f open(ra.txt, r, encodingutf-8) finally: # 不处理异常无论是否发生异常都会执行finally的子代码print(》》》》》应该把被检测代码中回收系统资源的代码放到这里)if f:f.close()print(end....)raise - 手动触发异常 对于不符合python解释器的语法或者逻辑的代码在运行时python解释器会主动抛出异常如果在程序运行中出现了违反了开发人员自定义的各种逻辑或者规则开发人员也可以自己明确的触发异常可以使用raise关键字手动触发异常raise后面必须是一个异常的类或者异常的实力。 class Info():def __init__(self, name):if type(name) is not str:raise TypeError(name must be str)self.name namei Info(123) # # TypeError: name must be str异常处理的使用场景 为了提高程序的健壮性很多刚入门编程的小伙伴认为应该为程序尽可能的多加try...except这是一种过度使用异常处理的方式是不正确的 对于可以预知可能会触发异常的条件建议使用if分支进行判断而对于一些无法预知的、有很大几率会触发异常的条件才进行异常处理比如下载时网络出现问题这种情况无法预知只能使用异常处理。 最后感谢每一个认真阅读我文章的人礼尚往来总是要有的这些资料对于【软件测试】的朋友来说应该是最全面最完整的备战仓库虽然不是什么很值钱的东西如果你用得到的话可以直接拿走 这些资料对于【软件测试】的朋友来说应该是最全面最完整的备战仓库这个仓库也陪伴上万个测试工程师们走过最艰难的路程希望也能帮助到你
http://www.pierceye.com/news/84209/

相关文章:

  • 营销网站服务器做网站的软件dw
  • 网站里面的图片做桌面不清晰天元建设集团有限公司 天眼查
  • 为网站网站做网络维护城市建设规划网站
  • 网站下载端口建设专业做包装的电商网站
  • 做游戏的网站有哪些怎么创自己的网站
  • 网站的类型及特点php 网站进入后台
  • 网站漏洞有哪些wordpress olam
  • 学asp.net 做网站 书籍福田祥菱m2柴油版
  • 网站后台登录不进去h5免费制作
  • 临沂企业建站系统佛山住房和城乡建设厅网站
  • 广告案例网站全屏网站 内页怎么做
  • 网站建设胶州家园网站维护必须要会什么
  • 网站开发实例教程深圳装修公司上市的有哪几家
  • 远程教育网站建设方案网站开发做美工
  • 网站建设的步骤过程视频学校网站建设工作简报
  • 专业设计网站排行榜做境外碎片化旅游的网站
  • 网站建设翻译谁提供seo网站推广软件
  • 网站都有什么类型公司门户网站建设
  • 哪有做网站公司巢湖网 网站
  • php网站开发是做什么的微信小程序注册后怎么登录
  • 网站生成静态页面工具家庭千兆网络组建方案
  • 做期货资讯网站网站登录界面源码
  • 备案个人网站名称推荐wordpress 样式
  • 桂林网站优化公司施工企业自营率怎么算
  • 常用的网站制作开发小程序的软件有哪些
  • 微信公众号如何做网站化工企业建网站
  • 企业门户网站实现百度网盘链接
  • 南通公司网站建设品牌的品牌推广设计
  • 泉州百度网站推广建程网是干嘛的
  • 网站规划与网页设计总结青岛行业网站建设电话